2016-10-17 5 views
0

私は、管理されたmanytomanyフィールドをカスタムモデルを使用して1つに変更しながらいくつかの魔法をした同僚を持っています。これは素晴らしい!偽のDjangoマイグレーション(マイグレーション自体)

./manage.py makemigrationsを実行すると、不要なマイグレーションが自動生成されるようになりました。この自動生成されていない移行は正常に機能し、移行スクリプトは混乱しているようです。

このコードは既に本番環境や多くの環境に配備されているため、マイグレーションを生成して永続的に偽のマークを付けるので、誰もそのマイグレーションを実行することはありません(ただし、makemigrationスクリプトは問題ありません)。

これを実行する方法はありますか私はすべての環境(およびすべての新しいもの)

私は、MySQL 5.6でのPython 3.5にDjangoの1.10を使用しています上./manage.py migrate <migration> --fakeを実行している立ち往生しています。

+0

この質問に対する正解は次のとおりです。http://stackoverflow.com/a/30913827/26235 –

答えて

0

あなたの同僚がカスタムモデルやフィールドで行う作業が多いようです。実際にスキーマの変更がない場合は、変更が検出されていないことを 'makemigrations'レポートに含めることが可能でなければなりません。

これを正しく実行するには、フィールド解体を適切に実装する必要があることを意味します。ここから読んでください:https://docs.djangoproject.com/en/1.10/howto/custom-model-fields/#field-deconstruction

内部からの移行を偽造しようとすると、痛みの世界にあなたを連れてくる恐ろしいハックのように聞こえます。

+0

この問題はhttp://stackoverflow.com/a/30913827/26235とhttps ://code.djangoproject.com/ticket/23034 ...最初のリンクのように見える移行をロックする方法があるかどうかは本当に分かります。 –

関連する問題