1. ホーム
  2. django

最近のDjangoのマイグレーションをつぶすには?

2023-10-02 06:57:26

質問

Django の migrations のコードの中に squashmigrations コマンドがあります: "このコマンドで app_label までと migration_name を、可能であればより少ないマイグレーションに減らしてください。

つまり、例えば最初の5回のマイグレーションを潰したい場合、これが役に立ちます。

で始まるものをつぶすのに一番いい方法は何ですか? migration_name ?

現在取り組んでいるプロジェクトでは、新機能の追加に伴い、5 ~ 10 個の新しいマイグレーション ファイルを追加しました。プロジェクト全体を一度にデプロイする予定ですが、これらを個別に実行すると時間がかかりすぎるように思われます。このプロジェクトのすべての移行を 1 つの移行にまとめ、それを実行する時間をテストしたいと思います。

どのように解決するのですか?

python manage.py squashmigrations <appname> <squashfrom> <squashto>

python manage.py help squashmigrations

https://docs.djangoproject.com/en/dev/topics/migrations/#migration-squashing

これにより、どのマイグレーションをつぶすかをより細かく制御できるようになり、コミット履歴をよりきれいに保つことができます。すべての移行を削除して再作成すると、モデルの構築方法によっては循環依存性などの他の問題を引き起こす可能性があります。