35回のマイグレーションを実行して(テストの前など)実行に時間がかかるアプリがありますので、それらをスクアッシュしたいと思います。新しい移行を使用してマイグレーションをスムーズにする
squashmigrations
コマンドは、操作を99から88に減らしますが、依然として最適ではありません。これはおそらく、複数のRunPython
オペレーションがDjangoが他のオペレーションを最適化することを妨げるためです。これらのすべてのRunPython
操作は、データベースが空であるため、潰れた移行では役に立たない。 Django 1.10では、elidable
パラメータではこの場合スキップすることができますが、依然として多くの混乱が残っています。
は、それが移行の長いリストの押しつぶされたバージョンとして新鮮な初期の移行を使用することをお勧めです:
は、それゆえ私の質問、Djangoは発生初期の移行に近い私は押しつぶされた移行のために念頭に置いていた何でしたか?あなたはどうしますか?
ありがとうございます!しかし、どのように初期移行を生成しますか?現在のすべての移行を別のフォルダに移動しますか? – pintoch
私はローカルの各アプリケーションの下にあるフォルダ「マイグレーション」を削除します。一般的に私はPostreSQLを使用します。最も単純なケースでは、私はこれを実行します: 'dropdb dbname && createdb dbname && rm -rf some_application/migrations && python manage.py migrate' –