Django マイグレーション

Django マイグレーションとは

Djangoの仕組みを利用して、データベースに変更操作することが出来る機能です。

SQL操作はDjangoが実行してくれるので一切不要となります。

Django マイグレーションの実施方法

Models.pyの編集

作成したいテーブル情報を設定していきます。

models.py

class MemberList(models.Model):
    name = models.CharField(max_length=20)
    sex = models.CharField(max_length=1)
    age = models.IntegerField()
    tel = models.CharField(max_length=20)
    birthplace = models.CharField(max_length=20)

マイグレーションファイルの作成

次のコマンドをコンソールより実行します。

python manage.py makemigrations

上記はプロジェクト全体のmodels.pyが対象となります。
特定のmodels.pyのみ対象としたい場合は次のようにします。

python manage.py makemigrations (アプリ名)

先ほどのコマンドの後ろにアプリ名を付加したのみです。
指定アプリのmodels.pyのみがマイグレーション対象となります。

成功するとマイグレーションファイルが作成されています。

マイグレーションを実行

次のコマンドをコンソールより実行します。

python manage.py migrate

プロジェクト全体のマイグレーションファイルを対象にマイグレーションが実行されます。
この場合Djangoに元々付いているマイグレーションファイルも対象となってしまい、自身で作成した以外のテーブルがDB上に作成されることとなります。

これを避けたい場合は以下のように、対象を絞って実行します。

python manage.py migrate (アプリ名)

先ほどのコマンドの後ろにアプリ名を付加したのみです。
指定アプリ配下にあるマイグレーションファイルのみが実行対象となります。

成功すると次のようなテーブルが生成されます。

ここでmodels.pyで指定していないカラムが自動で追加されることに注意してください。

そのカラム名は「id」で、主キーとなります。

コメント