« ^ »

Djangoのマイグレーションファイルをまとめる

所要時間: 約 2分

Djangoを用いてWebアプリケーションを開発していると、データベースマイグレーションをしばしば行う必要が出てくる。データベースマイグレーションのファイルが多くなってくると、マイグレーションを実行するだけで、結構時間がかかる。Djangoでテストを実行する時は毎回最初からマイグレーションが実行されるため、マイグレーション自体に時間がかかると、開発体験が著しく損なわれる。

Djangoではこのような場合に、データベースマイグレーションをまとめるためのコマンド squashmigrations を提供している。このコマンドは指定した範囲のマイグレーションファイルを1つにまとめることができる。ただし、その結果としてマイグレーションファイルの依存関係が壊れることがあるため、その場合は注意深く修正する必要が出てくる。

もしマイグレーションファイルの依存関係を壊してしまい修正できない場合は、まとめるために生成したマイグレーションファイル自体を削除してしまえば元に戻すことができる。

また、まとめた後の古いマイグレーションファイルは、マイグレーションで問題ないことが確認できたら消してしまってよい。ただし、存在していても邪魔することはないため、良きタイミングを見計らって削除すると良い。