はこにわ

雑記

【Django】マイグレーションファイル作成とマイグレーション実行方法

はじめに

Djangoマイグレーションファイルを作成し、実行するまでを調べ、実施したので 備忘録としてまとめました。

開発環境

macOSで実行しています。他環境の場合は適宜読み替えてください。

※事前にアプリケーションを作成してあることが前提です

※フォルダやファイルの構造については割愛します

ここでは作成するアプリケーション名をtestappとします。

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

testapp/model.py でモデルを作成

testappuserモデルを追加する、という例で進める場合、testapp/model.pyに以下のように記述します。

 import uuid # uuid(世界で重複する確率が極めて低いID)利用のための記述

 from django.db import models

 class User(models.Model):
     class Meta:
         db_table = 'user'
         # 名前指定用 デフォルトだと英語表記のため、日本語表記で設定するために記述
             verbose_name = verbose_name_plural = 'ユーザー' 

      id = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False)
      name = models.CharField(verbose_name='氏名', max_length=20)
      created_at = models.DateTimeField(verbose_name='登録日時', auto_now_add=True)
      def __str__(self):
             return self.name # nameカラムの値を返す

上記例では、Userモデルで追加するカラムはid,name,created_at としています。

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

ターミナルで以下のコマンドを実行し、マイグレーションファイルを作成します。 ※testappディレクトリの中で実行します。

$ python manage.py makemigrations testapp

testapp/migrationsの中に新しいマイグレーションファイルが作成されます。

マイグレーションの実行

ターミナルで以下のコマンドを実行し、マイグレーションを実行します。

$ python manage.py migrate

Userモデルが追加されました。

*もし誤りなどあればコメントにてご指摘お願いします! *