最初に、Django south
ではなく1.7で導入された移行について質問しています。
移行があるとします001_add_field_x
、002_add_field_y
、両方ともデータベースに適用されます。今、気が変わって、2番目の移行を元に戻し、別の移行に置き換えます003_add_field_z
。
言い換えると、002をスキップして001と003を適用したいのですが、どうすればよいですか?
追伸001に逆方向に移行できることは知っていますが、003移行を行ってmigrateコマンドを実行すると、001から003がすべて適用されますか?
--fake
オプションを使用できます。
0001
に戻ると、実行できます
python manage.py migrate <app> 0002 --fake
そして、実行します
python manage.py migrate <app> #Optionally specify 0003 explicitly
この場合、0003
のみが適用されます。
すべての環境/他の開発者に対してこのプロセスを実行したくない場合は、移行ファイルを削除して、新しいmakemigration
を実行し、そのファイルをコミットします-はい、migrate
--fake
オプション付き
この特定のケースには適用できませんが、all未適用の移行をスキップする必要がある場合、または使用する必要がある場合は、これを使用できます。
python manage.py migrate --fake
入力を少し節約できます。