🐥

[Django] マイグレーションに関する操作

2021/05/03に公開

マイグレーションに関する操作まとめ

Djangoのマイグレーションに関する操作をまとめてみました。

コマンド一覧

[makemigrations] マイグレーションファイルを作成する

これをしないと始まらないですね。モデルからマイグレーションファイルを作成します。作成されたらmigrationsフォルダに格納されます。

python manage.py makemigrations appname

[migrate] マイグレーションを実行する

マイグレーションファイルをもとにマイグレーションを実行します。

python manage.py migrate appname

[showmigrations]の実行状況を確認する

マイグレーションの実行状況を確認できます。

python manage.py showmigrations appname

[sqlmigrate] マイグレーションの実行SQLを確認する

マイグレーションを実行する時の実際のSQL構文を確認できます。

python manage.py sqlmigrate appname 0001_initial

[migrate app_name migration_name] ロールバックする

ロールバックもできます。アプリ名とマイグレーション名を指定しますが、指定したマイグレーションを実行したところまで戻ります。

以下の例では0001_internalを実行したところまで戻します。0001_initialの実行前に戻すわけではないので注意です

python manage.py migrate appname 0001_initial

[migrate zero] 完全に初期化する

完全にゼロに戻せます。

python manage.py migrate appname zero

[squashmigrations] マイグレーションファイルをまとめる

マイグレーションファイルをまとめられます。

python manage.py squashmigrations appname

参考

https://docs.djangoproject.com/en/3.2/topics/migrations/

Discussion