Django dumpdata and loaddata


原文來自於: 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 來選擇自己想要的格式
  • 命令支持選擇的格式
    1. json
    2. xml
    3. 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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM