目錄
原文來自於: https://coderwall.com/p/mvsoyg/django-dumpdata-and-loaddata
dumpdata 命令
- 這個是Django自帶的管理命令,可以用來備份你的模型實例和數據庫
dumpdata 基本數據庫的轉存
- 下面的命令將把整個數據轉存到db.json文件中
./manage.py dumpdata > db.json
dumpdata 備份特定的 app
- 下面的命令將在django admin app 轉存到 admin.json文件中
./manage.py dumpdata admin > admin.json
dumpdata 備份特定的表
- 下面的命令將只轉存django admin.logentry 表中的內容
./manage.py dumpdata admin.logentry > logentry.json
- 下面的命令將只轉存django auth.user 表中的內容
./manage.py dumpdata auth.user > user.json
dumpdata (--exclude)
- 你可以使用 --exclude 選擇不需要備份的app或者表
- 你可以使用 --indent 加上一個代表空格數的數字 格式化輸出
./manage.py dumpdata auth.user --indent 2 > user.json
dumpdata (--format)
- 通常,dumpdata將會格式化數據輸出為json格式
- 但是你也可以使用 --format 來選擇自己想要的格式
- 命令支持選擇的格式
- json
- xml
- yaml
./manage.py dumpdata auth.user --indent 2 --format xml > user.xml
loaddata 命令
- 這個命令可以用來導入固定格式的數據(數據庫 dumps)到數據庫
./manage.py loaddata user.json
- 這個命令將user.json文件中的內容導入到數據庫
遷移數據到新的數據庫
- 當你使用dumpdata命令備份整個數據庫時,將會備份數據庫所有的表
- 如果你使用數據庫自帶的dump去加載到新的數據庫中(在其他的django項目),你將會得到一個IntegrityError(如果你loaddata在同一個數據庫可能沒有問題)
- 為了解決這個問題,保證備份的數據庫通過過濾contenttypes和auth.permissions表
./manage.py dumpdata --exclude auth.permission --exclude contenttypes > db.json
- 現在,你可以在一個新的數據庫中使用loaddata命令
./manage.py loaddata db.json
