原文來自于: 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 來選擇自己想要的格式
- 命令支持選擇的格式
- json
- xml
- 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