Posted at

Djangoの初期データ投入機能についてメモ

More than 1 year has passed since last update.


fixture というものがある

詳しくはここDjangoのドキュメント

JSON, XML, YAMLで書ける


使い方


1. このような構造にする

.

└── mysite
├── db.sqlite3
├── manage.py
├── mysite
│   ├── settings.py
│   ├── urls.py
│   └── wsgi.py
└── polls
├── __init__.py
├── admin.py
├── apps.py
├── migrations
├── models.py
├── templates
├── tests.py
├── urls.py
├── views.py
└── fixtures # 追加


2. fixturesディレクトリに投入したいデータを書いたJSONファイル追加

fixtures

├── data1.json
├── data2.json
├── data3.json
└── data4.json


3. loaddata を使って読み込む

$ python manage.py loaddata polls/fixtures/data1.json


4. 反対にDBのデータを出力したいときは dumpdata を使う

$ python manage.py dumpdata --indent=2 --format=json polls.modelname > polls/fixtures/data.json

日本語が含まれている場合、エスケープされてしまうので、エスケープされたままだと困る場合は変換する必要がある。