Djangoのマイグレーション機能を使って、
モデルからテーブルを作ります。
環境
- Windows10
- Django 2.1.4
- sqlite3
フォルダ構成
フォルダ構成は下記の通りです。
プロジェクト名 [example]
アプリケーション名[testapp]
example
│ db.sqlite3
│ manage.py
│
├─example
│ │ settings.py
│ │ urls.py
│ │ wsgi.py
│ │ __init__.py
│ │
│
└─testapp
│ admin.py
│ apps.py
│ models.py
│ tests.py
│ urls.py
│ views.py
│ __init__.py
│
├─migrations
│ 0001_initial.py
│ __init__.py
│
モデルの作成
testapp/models.pyの編集
models.pyに、テーブル名やカラム名の設定を書きます。
from django.db import models
class Account(models.Model):
id = models.IntegerField(primary_key=True)
name = models.CharField(max_length=30)
setting.pyにアプリケーションを適用させる
example/setting.pyを下記のように編集します。
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'testapp.apps.TestappConfig', # 追加
]
これで、testappがexampleプロジェクトのアプリだと認識できます。
マイグレーションでテーブルを作る
下記のコマンドを実行して、マイグレーションを行うためのファイルを作ります。
- python manage.py makemigrations testapp
migrationsディレクトリに、マイグレーションのためのテーブルの設定が書かれています。
> python manage.py makemigrations testapp
Migrations for 'testapp':
testapp\migrations\0001_initial.py
- Create model Account
models.pyのテーブル設定を更新するたびに0001_initial.py、0002_initial.pyとファイルが出力され、変更履歴を残してくれます。
makemigrationsコマンドを実行したら、
下記のコマンドを実行してマイグレーションの実行をします。
python manage.py migrate
実行結果の中に下記が含まれていたら、テーブルが作成できています。
- Applying testapp.0001_initial… OK
テーブルのデータは、
sqlite3の場合、example/db.sqlite3に保存されています。
フリーソフトのSQLiteSpyでdb.sqlite3を開くと、testapp_accountというテーブルが作成されたということがわかります。


