django で初期データ投入のメモ
空のマイグレーションを作成する
コマンドは下の通り。これで空のマイグレーションファイルを作成します。
python manage.py makemigrations app --empty
処理を作成する
作成された空のマイグレーションファイルに処理を記述します。サンプルは下の通りです。
from django.db import migrations
def create_data(apps, schema_editor):
Writer = apps.get_model('app', 'writer')
Writer.objects.update_or_create(id=1, defaults={'name': 'hoge'})
def noop(apps, schema_editor):
# 失敗した時は何もしない。
pass
class Migration(migrations.Migration):
dependencies = [
('app', '0001_initial'),
]
operations = [
migrations.RunPython(create_data, noop),
]
migrate を実行すると第一引数の create_data が実行されます。もしこれに失敗した場合は第二引数が実行されます。
今回は Writer モデルに hoge を追加しているだけです。失敗した場合も noop として何も実行していませんがロールバックするための処理などを入れたりします。
ディスカッション
コメント一覧
まだ、コメントがありません