LoginSignup
0
1

More than 3 years have passed since last update.

makemigration と migrate

Posted at

はじめに

引き続き、勉強しているDjangoについてまとめました。
自分への備忘録代わりに書き留めています。
基本的な機能を理解できたら、家計簿アプリとか作ってみようと計画中です。

データベースマイグレーションとは

アプリケーションで使うデータベースの定義を自動的に作成・管理する機能のことを示しています。

前提として、、、

Models.pyにDBの中にテーブルが作成されておらず、makemigrateとmigrateを実施することで、DBの中にテーブルが作成される仕組みになっています。

makemigrate

DBの中にテーブルを作成するために、マイグレーションファイルを作成。
役割としては、models.pyに書いたモデルに対して、新しいマイグレーションを作成する。

ターミナル
python manage.py makemigrations

大型開発の場合、一気に全てのDBを変更すると、不具合が出る可能性があるため、該当のアプリのみを変更する場合は、以下の通りに実行する。

ターミナル
python manage.py makemigrations (アプリ名)

migrate

マイグレーションを適用したり、適用をキャンセルするのに使います。
作成されたマイグレーションファイルを元に、DBにテーブルを作成します。

ターミナル
python manage.py migrate

おまけ:You have XX(数字) unapplied migration(s).

サーバーを立ち上げようとしたら、You have XX(数字) unapplied migration(s).と書かれていた場合は、makemigration と migrateを実施するとデータベースのテーブルを更新すれば、解消されます。

参考資料

以下を参考にさせていただきました。

Django マイグレーション まとめ
https://qiita.com/okoppe8/items/c9f8372d5ac9a9679396
Python入門 Djangoの使い方(その12)マイグレーションする。
https://tech.pjin.jp/blog/2017/06/29/python-primer-26-django-12/
学習メモ】MakemigrationsとMigrateについて
https://qiita.com/frosty/items/8c715a53d7920c9cd1eb
マイグレーション
https://docs.djangoproject.com/ja/3.2/topics/migrations/

0
1
0

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
  3. You can use dark theme
What you can do with signing up
0
1