6

django テストを適切に実行するのに苦労しています。私は鼻を使用していますが、移行が適用されているときにエラーが発生し始めました。テーブル 1 からテーブル 2 への外部キー関係がエラーで失敗したということです。

django.db.utils.DatabaseError: relation "table2_column" does not exist

移行が適用されている方法を見ると、外部キー関係が適用される前に table1 が作成されていないことが明らかだったので、依存関係を強制する方法を見つけようとしたところ、次の記事が見つかりました: http:// south.aeracode.org/docs/dependencies.html

次に追加しました:

depends_on = (
    ("app2", "0001_inital"),
)

私の app1/0001_initial.py ファイルに。

残念ながら、次のエラーが表示されます。

south.exceptions.DependsOnUnknownMigrationMigration 'app1:0001_initial' depends on unknown migration 'app2:0001_inital'.

これを解決する方法についてのアイデアはありますか?

4

3 に答える 3

19

これで問題が解決するかどうかはわかりませんが、テストの実行時に移行の代わりに syncdb を使用する設定を追加できます。次の行を settings.py に追加します

SOUTH_TESTS_MIGRATE = False
于 2011-03-23T11:52:44.543 に答える
5

依存している移行の名前にタイプミスがあります。そのはず:

depends_on = (
    ("app2", "0001_initial"),
)

この依存関係システムは、あなたがここにリストしたのとまったく同じ問題を抱えていて、依存関係システム South のドキュメントを見つけた後、私にとってはうまくいきました。

于 2011-04-23T10:06:25.767 に答える
0

このエラーは、ターゲット モジュールのインポート中にエラーが発生した場合にもスローされます。手動で構成された移行があり、ファイル名がdepends_onまたはneeded_byと一致することが確実な場合は、参照されているファイルにエラーがないか確認してください。

また、SOUTH_TESTS_MIGRATE を False に設定しても問題は解決しません。これは、移行を使用するまで問題が発生しないことを意味します。

http://south.readthedocs.org/en/latest/settings.html

(ユニットテストをスピードアップしたい場合には、これはまだ役に立ちます。)

于 2014-07-11T22:13:46.780 に答える