Python(Django)+Vue.js(Nuxt.js,Vuetify)を使ったシステムの開発です。
今日はデータベースの設計を行います。
djangoにはマイグレーション(migration)という機能がありますので、それを使います。
- 最初にModelsファイルを(データの構造を作成)作ります。
- 次に作成したModelsファイルからマイグレーションファイルを作成
- 最後に作成したマイグレーションファイルをデータベースに適用
となります。
上記の3つは開発中に何度も繰り返すことになりますので覚えておきましょう。
migrationコマンドは2つあり
2つ目のModelsファイルからマイグレーションファイルを作成するコマンド
(venvMitsumori) % python manage.py makemigrations
3つ目の作成したマイグレーションファイルをデータベースに適用するコマンド
(venvMitsumori) % python manage.py migrate
となります。
今回作るデータベースはPCパーツのネットショップ向け見積もりシステムです。商品を選択していくと最後に合計金額が表示されるものです。
テーブルの項目は
- id (管理番号)
- category(商品のカテゴリー)
- name(商品名)
- description(商品の詳細)
- price(商品の金額)
の5項目です。それに加えシステムで利用する
- 作成日
- 更新日
となります。
では早速作っていきましょう。
models.pyの作成
venvMitsumori > mitsumori > api > models.py
from django.db import models
# Itemテーブルの内容
class Item (models.Model):
# id = AutoField(primary_key=True) # 自動的で追加される
category = models.IntegerField('カテゴリー')
name = models.CharField('商品名', max_length=255)
description = models.TextField('詳細', max_length=1000)
price = models.IntegerField('金額')
created_at = models.DateTimeField(auto_now_add=True)
updated_at = models.DateTimeField(auto_now=True)
マイグレーションファイルを作成します
(venvMitsumori) % python manage.py makemigrations
Migrations for 'api':
api/migrations/0001_initial.py
- Create model Items
マイグレーションを実行します。
(venvMitsumori) % python manage.py migrate
Operations to perform:
Apply all migrations: admin, api, auth, contenttypes, sessions
Running migrations:
Applying api.0001_initial... OK
以上でテーブルの作成は終わりです。
もしデータ構造や項目が変更になった場合はmodels.pyを修正しコマンドを実行して更新します。
コメント