#概要
モデルをデータベースに反映するためにmigrate
を実行しますが、makemigrations
があるのを知ったので、少しまとめてみます。
#MakemigrationsとMigrateの違い
-
migrate
はモデルをデータベースに反映させる -
makemigrations
はマイグレーションファイルを作成する
つまりmigrate
をすることで、データベース構成を変更したり、その変更を取り消したりすることが出来るが、データベース構成のバージョン管理をするのに、makemigrations
でマイグレーションファイルを作成する。
- 公式からは下記のように記載されています。
マイグレーション (Migrations) は、Django でモデルに対して行った変更 (フィールドの追加やモデルの削除など) をデータベーススキーマに反映させる方法です。
マイグレーションというのは、データベーススキーマに対するバージョン管理システムのようなものです。makemigrations はモデルの変更点を1つのマイグレーションファイルにパッケージングし(コミットのようなものです)、migrate はその変更点をデータベースに適用する、というわけです。
引用:https://docs.djangoproject.com/ja/2.2/topics/migrations/
- 図にすると、わかりやすいですね。
#コマンド
実行方法はシンプルで、下記のようになります。
makemigrations
$ python manage.py makemigrations
migrate
$ python manage.py migrate
以上