LoginSignup
1
1

More than 3 years have passed since last update.

Djangoでローカルのdb.sqlite3のデータをファイル出力してherokuに入れる

Last updated at Posted at 2018-12-14

ローカルの開発環境のDBはdb.sqlite3を使っている。
このDBのデータをherokuに移行して使いたい。
流れとしては
$ python manage.py dumpdata
を使ってダンプファイルを作成。
作ったダンプファイルをgitでherokuにデプロイしたうえで
$ heroku run python manage.py loaddata [ダンプファイル名]
とする。
The Heroku CLIをインストールしている前提。

dumpdataの使い方

基本形

$ python manage.py dumpdata > dump.json
これが基本形。
dump.jsonというファイル名で出力。
基本はJSONで出力されます。
model.pyで管理されているテーブルとadmin関連のテーブルを対象とする(はず)。

フォーマットの指定

python manage.py dumpdata --format=yaml > dump.yaml
YAML形式が良ければ--formatで指定する。
※YAMLを使う時はPyYAMLを追加しないと処理できない。

python manage.py dumpdata --format=xml > dump.xml
XML形式が良ければ--formatで指定する。

インデント

$ python manage.py dumpdata -–indent 2 > dump.yaml
何も指定しないと1行でずらっと出力されるので、整形したければ-–indentでインデントする。
深く検証していないけど数字だけ?2は半角スペース2つでインデント

ダンプするテーブルを指定

$ python manage.py dumpdata -–indent 2 map.prefecture > dump.yaml
テーブルを指定することができる。
上記はmapアプリのprefectureテーブルだけをダンプする。

$ python manage.py dumpdata -–indent 2 map.prefecture map.city > dump.yaml
当然複数テーブル指定可能。
上記はmapアプリのprefectureとcityという2つのテーブルをダンプする。

$ python manage.py dumpdata -–indent 2 –exclude map.prefecture > dump.yaml
基本全部ダンプでいいんだけど、一部のテーブルは除外したいという時は–-exclude

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1