Help us understand the problem. What is going on with this article?

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

More than 1 year has passed since last update.

概要

モデルをデータベースに反映するために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

以上

frosty
Python(Django)を勉強しています、プログラミング初学者です。備忘録など投稿しています。
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away