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というテーブルが作成されたということがわかります。