はじめに
引き続き、勉強している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/