Django dumpdata and loaddata

原文來自于: https://coderwall.com/p/mvsoyg/django-dumpdata-and-loaddata

dumpdata 命令

  • 這個(gè)是Django自帶的管理命令,可以用來備份你的模型實(shí)例和數(shù)據(jù)庫(kù)

dumpdata 基本數(shù)據(jù)庫(kù)的轉(zhuǎn)存

  • 下面的命令將把整個(gè)數(shù)據(jù)轉(zhuǎn)存到db.json文件中

./manage.py dumpdata > db.json

dumpdata 備份特定的 app

  • 下面的命令將在django admin app 轉(zhuǎn)存到 admin.json文件中

./manage.py dumpdata admin > admin.json

dumpdata 備份特定的表

  • 下面的命令將只轉(zhuǎn)存django admin.logentry 表中的內(nèi)容

./manage.py dumpdata admin.logentry > logentry.json

  • 下面的命令將只轉(zhuǎn)存django auth.user 表中的內(nèi)容

./manage.py dumpdata auth.user > user.json

dumpdata (--exclude)

  • 你可以使用 --exclude 選擇不需要備份的app或者表
  • 你可以使用 --indent 加上一個(gè)代表空格數(shù)的數(shù)字 格式化輸出

./manage.py dumpdata auth.user --indent 2 > user.json

dumpdata (--format)

  • 通常,dumpdata將會(huì)格式化數(shù)據(jù)輸出為json格式
  • 但是你也可以使用 --format 來選擇自己想要的格式
  • 命令支持選擇的格式
    1. json
    2. xml
    3. yaml

./manage.py dumpdata auth.user --indent 2 --format xml > user.xml

loaddata 命令

  • 這個(gè)命令可以用來導(dǎo)入固定格式的數(shù)據(jù)(數(shù)據(jù)庫(kù) dumps)到數(shù)據(jù)庫(kù)

./manage.py loaddata user.json

  • 這個(gè)命令將user.json文件中的內(nèi)容導(dǎo)入到數(shù)據(jù)庫(kù)

遷移數(shù)據(jù)到新的數(shù)據(jù)庫(kù)

  • 當(dāng)你使用dumpdata命令備份整個(gè)數(shù)據(jù)庫(kù)時(shí),將會(huì)備份數(shù)據(jù)庫(kù)所有的表
  • 如果你使用數(shù)據(jù)庫(kù)自帶的dump去加載到新的數(shù)據(jù)庫(kù)中(在其他的django項(xiàng)目),你將會(huì)得到一個(gè)IntegrityError(如果你loaddata在同一個(gè)數(shù)據(jù)庫(kù)可能沒有問題)
  • 為了解決這個(gè)問題,保證備份的數(shù)據(jù)庫(kù)通過過濾contenttypes和auth.permissions表

./manage.py dumpdata --exclude auth.permission --exclude contenttypes > db.json

  • 現(xiàn)在,你可以在一個(gè)新的數(shù)據(jù)庫(kù)中使用loaddata命令

./manage.py loaddata db.json

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容