2011-02-10 3 views
5

が存在する:django - "manage.py test" fails "table already exists"南Djangoのテーブルには、すでに私はと同じ問題が発生してい

schemamigration /移行がうまく働いた(--fakeように私に必要ないくつかの問題を持っていたが、南の仕事と後続のすべての移行が、 )。

(1050, "Table '{tablename}' already exists") 

は私がこのラウンドを取得することができますどのようにだけ興味があり、これがなぜ起こるか:私はユニットテストを実行するときしかし、私は取得します。上記の質問にある唯一の答えは、南部が単体テストから除外される可能性があるということでした。これを行うと南部が管理するテーブルで単体テストできないということですか?感謝

説明:)

アダム

答えて

8

いいえ、それはそれを意味するものではありません。 Djangoが最初からテーブルを作成した場合、Djangoは既にテーブルがどのようなものかを知っていることを忘れないでください。now - モデル定義のみを使用します。 Southは、モデルを変更したときにテーブル構造を簡単に変換できるので便利ですが、テストを実行しているときは気にしません。テストは現在のバージョンのテーブルで実行するだけです。

したがって、テストを実行するときにはSOUTH_TESTS_MIGRATE = Falseを介してサウスを無効にすると、Djangoが自動的にテーブルを作成します。

+0

もう一つのジャンゴのコンセプト(私はPHPから移動しています)を歓迎しました。 – null

関連する問題