2

新しい開発環境にプロジェクトをデプロイしています。

南を使用しているので、次のことを行いました。

$ python manage.py syncdb --all
$ python manage.py migrate --fake

以前syncdb --allはモデルの実際の状態を適用していました。

次にmigrate --fake、すべてのモデルを移行済みとしてマークします。

しかし、その後、私のモデルは最後のバージョンではありません (フィールドがありません)

私は何を間違っていますか?


すべての変更に移行があると思います。

私が行った場合

$ python manage.py syncdb

Southを使ってから初めて状態を作るらしい(予想通り
)

$ python manage.py migrate

一部のテーブルが作成済みとして表示される

4

2 に答える 2

2

実際、これは私の場合は問題なかったはずです

$ python manage.py syncdb --all
$ python manage.py migrate --fake

最近アプリを再デプロイする必要があり、同じ問題に直面しました。
問題の原因となっているモデルに二重の初期移行があったことに気付きました

0001_initial.py
0002_initial.py
0003_auto__add_field_mytable_myfield.py

単純に削除して名前を変更しました

0001_initial.py
0002_auto__add_field_mytable_myfield.py

次に、データベースの展開全体をやり直しました(明らかに、他のホストで既に適用されている移行を更新することを忘れていません)

于 2013-12-28T10:28:52.133 に答える