サイドバーの「Django ドキュメント検索」というプレースホルダの入った検索では、Django ドキュメント (Django 2.1) の公式サイト内を検索できます
Django でデータをダンプ/ロードする

目次

はじめに

Django で運用しているデータを開発環境で使いたい時や、複数の開発環境で同じデータを使いたい時など、データベース間でデータをコピーする必要が有ります。Django の manage.py には、この目的に使える便利なコマンドがありますので紹介します。

データをダンプする

manage.py dumpdata を使うと、Django で利用している全データを json ファイルにダンプする事ができます。

(例) python manage.py dumpdata > ~/tmp/myapp.json

上記で、~/tmp/myapp.json にデータがダンプされます。

データをロードする

先程の myapp.json を別の PC にロードする場合には、manage.py loaddata が使えます。

(例)  python manage.py loaddata ~/tmp/myapp.json

上記では、別の PC でダンプした myapp.json を ~/tmp に配置しておき、新しい開発環境にロードしています。
(データベースの作成と migrate の実行はあらかじめ済ませておく必要があります。)

データをクリアする

データベースのデータをクリアするためには、 manage.py sqlflush で生成される SQL を実行します。これは、下記のコマンド一行で実施できます。

python manage.py sqlflush | python manage.py dbshell

本当は manage.py flush を実施すれば良いはずなのですが、私の環境 (Django 2.0.1, PostgreSQL 10.4) では IntegrityError が発生してしまいました。sqlflush で生成される SQL と flush で実行する SQL が異なっているようです。

参考

django-admin と manage.py | Django documentation | Django

低価格なのに高速・多機能・高セキュリティ 月額400円(税別)から最大容量100GB WordPress専用高速サーバー Z.com WP
おすすめの記事