Django4 PostgreSQL14 dumpdataコマンド設定 まとめ

Django4 PostgreSQL14 dumpdataコマンド設定 まとめ

Django4 PostgreSQL14 dumpdataコマンド設定 まとめ

Django4 PostgreSQL14 dumpdataコマンド設定 まとめ

意味:

dumpdata(データダンプ)コマンドとは、Djangoで、データベースの中身を出力するコマンドです。出力された中身のデータのことを、Djangoではfixture(フィクスチャア)ファイルと呼びます。fixtureファイルは、デフォルトではjson形式です。

動作環境:


Djangoの初期設定を終えた段階を想定しています。
OS: Linux Ubuntu 22
Program: Python 3.7
Framework: Django 4
Database: PostgreSQL 14

コマンドまとめ:


#python仮想環境に入る
source /xxx/[pythonenv]/bin/activate 
source /hikari/bin/activate
source /pythonprj/ramen/bin/activate

#djangプロジェクトのディレクトリへ移動
cd /xxx/[djangoproject] 
cd /hikari/front
cd /pythonprj/pasta

#DjangoでのDatadumpの手順
python manage.py clearsessions #不要なsessionデータを削除
python manage.py dumpdata --natural-foreign --exclude auth.permission --exclude contenttypes --indent 2 > db.json #データダンプ
python manage.py dumpdata [app] --indent 2 > [filename].json #アプリ指定でデータダンプ
python manage.py dumpdata flats --indent 2 > flats.json
python manage.py dumpdata auth --indent 2 > auth.json #userのみデータダンプ

#Djangoでのfixtureの整理
rm [filename].json #fixture消去
rm db.json
cd /var/www/ftp_dir #FTP用のディレクトリへ移動
cd /pythonprj/pasta #djangプロジェクトのディレクトリへ移動
cp [filename].json /var/www/[ftp directory] #FTP用のディレクトリへコピー
cp flats.json /var/www/ftp_dir
cp -r [directoryname] /var/www/[ftp directory] #FTP用のディレクトリへディレクトリそのものをコピー
cp -r static /var/www/ftp_dir
cp [filename].json /xxx/[djangoproject] #djangプロジェクトのディレクトリへコピー
cp flats.json /pythonprj/pasta

#DjangoからPostgresへのmigrationの手順
django projectのmigrationsフォルダを_init_.pyのみにする #djangoでmigarationファイルの初期化
/pythonprj/pasta/manage.py makemigrations
/pythonprj/pasta/manage.py makemigrations flats #特定のappのみ
/pythonprj/pasta/manage.py showmigrations
/pythonprj/pasta/manage.py migrate
/pythonprj/pasta/manage.py migrate flats #特定のappのみ

#Djangoでのloaddataの手順
python manage.py loaddata [filename].json #フィクスチュアをデータベースに入れる
python manage.py loaddata flats.json
/pythonprj/pasta/manage.py loaddata /var/www/ftp_dir/fla.json #FTP用ディレクトリから直接フィクスチュアをデータベースに入れる

#Postgresの動作確認
sudo systemctl status postgresql #状態確認
sudo systemctl restart postgresql #再起動
sudo systemctl enable postgresql #自動再起動の設定

探究資料:


djangoproject.com.
PostgreSQL 14.2 Documentation.

スポンサーさん

エラー dumpdataコマンド DeserializationError

エラー文章:


django.core.serializers.base.DeserializationError: Problem installing fixture '/xxx/xxx/xxx.json'

解説:


このエラーは、以下の場合に発生します。
dumpdataコマンドで作成したfixtureのJsonファイル形式が壊れている場合。
modelデータ(migrationしてデータベースのスキーマとなる)と、挿入するデータベースのスキーマに違いがある場合。

対策:


fixtureのJsonファイル形式が有効かどうか確認する。
modelデータを確認して、データベースに抜けがないか確認する。特にForeign keyの関係に注意する。

Django4 dumpdataコマンド 探究資料

科目別 By Curriculum


大学受験  情報科学(Computer science)

単元別 By Subject


情報科学  プログラミング(Programming)
情報科学  パイソン (Python)
情報科学  ウェブ(Web)
情報科学  ウィンドウズ (Windows)
情報科学  リナックス (Linux)
情報科学  ギットハブ (Github)
情報科学  ジャンゴ (Django)

対象児童生徒 By Age


中学数学(二次関数まで!)を履修し終えている生徒
コンピューターの基礎知識を学びたい生徒
自分でプログラム(program)を書きたい生徒
情報科学(Computer Science)を学びたい生徒
大学受験生(国公立高校生+私立中高一貫校生)
大学生+社会人(基礎からやり直したい生徒)


プロ家庭教師コンピューター教材で、重要語句の日本語訳・韓中英訳・別名・解説をまとめています。オンライン学習用で、生徒・保護者・教員・家庭教師のために、無料ダウンロードを提供します。

スポンサーさん