こんにちは!ゆーや(@yuyamanm118712)です。
Djangoは、Pythonのフレームワークの中でも特に人気があり、その強力な機能の一つが「migrate」コマンドです。
このコマンドを使うことで、データベースのスキーマを効率的に管理し、アプリケーションの進化に伴うデータベースの変更を容易に追跡できます。
この記事では、「migrate」コマンドの使い方やその背後にある仕組みを深掘りし、効果的にDjangoアプリケーションを管理する方法について解説します。
Djangoでは「マイグレーション」を使うことで、SQLいらずでテーブルが作れるよ!
Djangoの「migrate」コマンドとは?
「migrate」コマンドは、Djangoのデータベース移行システムの中核を成すコマンドです。
これにより、モデルの変更をデータベーススキーマに反映することができます。
通常、Djangoアプリケーションを開発する際には、models.py
ファイルでデータベーステーブルの構造を定義します。
migrate
コマンドを実行することで、この定義に基づいたデータベースのテーブル作成や変更が自動的に行われます。
DBやテーブルって作ったり、修正したり面倒…
でも「migrate」を使えば…
「migrate」コマンドの基本的な使い方
以下の流れでmigrateは使っていきます。
- Modelファイル(テーブル定義)を作成・修正する
- マイグレーションファイルの生成する
- マイグレーションを実行する
順番に見ていくよ!
Djangoのプロジェクトやアプリの作成がわからない方は、以下の記事を見てね!
Modelの作成
次のようなテーブル「」を作るとします。
カラム名 | データ内容 |
テキスト | 文字列 |
数値 | 数値 |
作成日時 | 日時 |
ただし、マイグレーションではデフォルトで先頭に「ID」カラムが作られるのでそこだけ注意!
アプリフォルダ内のmodels.pyを以下のように修正します。
from django.db import models
# Create your models here.
# models.Modelを継承したクラスを作成
class SampleModel(models.Model):
# 「テキスト」というテキストのカラムを定義
title = models.CharField(
verbose_name='テキスト',
max_length=50
)
# 「数値」という数値用のカラムを定義
number = models.IntegerField(
verbose_name='数値'
)
# 「作成日時」という日時のカラムを定義
create_dt = models.DateTimeField(
verbose_name='作成日時'
)
マイグレーションファイルの生成する
以下のコマンドを実行すると、マイグレーションファイルが作成されます。
python manage.py makemigrations create_table_app
0001_initial.pyというファイルができたらOK!
0001_initial.pyのファイルの中身はこちら!
# Generated by Django 4.1 on 2024-08-03 10:24
from django.db import migrations, models
class Migration(migrations.Migration):
initial = True
dependencies = []
operations = [
migrations.CreateModel(
name="SampleModel",
fields=[
(
"id",
models.BigAutoField(
auto_created=True,
primary_key=True,
serialize=False,
verbose_name="ID",
),
),
("title", models.CharField(max_length=50, verbose_name="テキスト")),
("number", models.IntegerField(verbose_name="数値")),
("create_dt", models.DateTimeField(verbose_name="作成日時")),
],
),
]
マイグレーションファイルは、pythonでDB操作を実行するためのSQLだと思っておけば大丈夫だよ!
マイグレーションを実行する
以下のコマンドを実行すると、マイグレーション(DB操作)が実行されます。
python manage.py migrate
実行結果は以下のような表示になります。
これでテーブルができました!
テーブルができたか確認する
Django管理サイトを使用して確認します。
ユーザーの作成とDjango管理サイトの操作については、以下の記事を見てね!
Django管理サイトにアクセスし、ログインすると
「CREATE_TABLE_APP」に「Sample models」が作られているのがわかります。
さらに「Add」をクリックすると
カラムもきちんと作られているのがわかります。
Django管理サイトからデータを追加
以下の記事を見てね!
migrateで作成できるデータ型
以下の記事を見てね!
※現在、執筆中になります。少々お待ちください
コメント