1

私はセレンテストが依存するいくつかのPostgresストアドプロシージャを持っています。開発では、私は、スクリプトの行でそれらをロードします。ストアドプロシージャをDjangoユニットテストデータベースにロードする最良の方法は何ですか?

cat stored_procedures.sql | python manage.py dbshell

新鮮なデータベースをゼロから作成されるので、これは、ユニットテストを動作しません。ユニットテストを実行する前に、ファイルに保存されたストアドプロシージャをテストデータベースにロードするにはどうすればよいですか?

答えて

2

私はこれを行う方法がいくつかあると思います。私の意見では、最適なソリューション - カスタムSQLでの移行を追加する。将来的には、開発時だけでなく、生産段階でも移行が必要になります。したがって、DBへの変更をいくつかの場所に保存する場合は、プロシージャのデプロイが明確ではありません。

他の方法 - ちょうどあなたのSQLの実行をsetUpのtestCaseに追加する。あなたは、新しい空の移行./manage.py makemigrations --empty myApp

を作成する必要があります

追加の移行

operationsリストにあなたのSQLコードを追加します

operations = [ migrations.RunSQL('RAW SQL CODE') ]

+0

おかげで非常に - これは完璧に見えます。 –

関連する問題