search
LoginSignup
55
Help us understand the problem. What are the problem?

More than 3 years have passed since last update.

posted at

【学習メモ】MakemigrationsとMigrateについて

概要

モデルをデータベースに反映するためにmigrateを実行しますが、makemigrationsがあるのを知ったので、少しまとめてみます。

MakemigrationsとMigrateの違い

  • migrateはモデルをデータベースに反映させる
  • makemigrationsはマイグレーションファイルを作成する

つまりmigrateをすることで、データベース構成を変更したり、その変更を取り消したりすることが出来るが、データベース構成のバージョン管理をするのに、makemigrationsでマイグレーションファイルを作成する。

  • 公式からは下記のように記載されています。

マイグレーション (Migrations) は、Django でモデルに対して行った変更 (フィールドの追加やモデルの削除など) をデータベーススキーマに反映させる方法です。

マイグレーションというのは、データベーススキーマに対するバージョン管理システムのようなものです。makemigrations はモデルの変更点を1つのマイグレーションファイルにパッケージングし(コミットのようなものです)、migrate はその変更点をデータベースに適用する、というわけです。
引用:https://docs.djangoproject.com/ja/2.2/topics/migrations/

  • 図にすると、わかりやすいですね。

makemigrations_migrate.png

コマンド

実行方法はシンプルで、下記のようになります。

makemigrations

terminal
$ python manage.py makemigrations

migrate

terminal
$ python manage.py migrate

以上

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
What you can do with signing up
55
Help us understand the problem. What are the problem?