本文介绍两种常用的 Django 服务迁移数据方法。
这两种方法都需要在新的服务器部署好数据库,创建好相应的数据库表和用户以后再进行。
1 使用dumpdata命令
针对数据量不是很大的项目,可以使用此方法,操作起来比较简单。
1.1 数据导出
通过连接旧的数据库运行dumpdata导出命令导出数据。
python3 manage.py dumpdata main --indent 4 -o mydata.json
1.2 数据导入
连接上新的数据库,比如通过在 local_settings.py 配置本地数据库,执行 loaddata 导入数据。
# 生成数据库表
python3 manage.py migrate
# 将数据导入到新的数据库
python3 manage.py loaddata mydata.json
如果出现 UnicodeDecodeError: ‘utf-8’ codec can’t decode 报错。可以将文件通过 json 进行处理,然后用新生成的文件重新执行 loaddata。
import json
json.dump(json.load(open("mydata.json")), open('mydata_new.json', 'w'))
2 通过pg_dump迁移数据
针对数据量比较大的基于 postgres 数据库的项目,可以使用此方法,迁移速度会比较快。
2.1 从旧数据库导出数据
通过 pg_dump 命令导出数据。
# 请替换 username、 localhost、database_name 为你自己的数据库配置
pg_dump -U username -h localhost database_name -f data_20230805.sql
2.2 拷贝数据到新服务器
通过 scp 拷贝数据到新服务器。文章来源:https://www.toymoban.com/news/detail-583353.html
# 将 data_20230805.sql 数据拷贝到 1.2.3.4 服务器下面的 opt 目录
scp data_20230805.sql root@1.2.3.4:/opt/.
2.3 新服务器导入数据
到 data_20230805.sql 文件所在的目录执行导入命令。文章来源地址https://www.toymoban.com/news/detail-583353.html
psql -U username -d database_name -h 127.0.0.1 -f data_20230805.sql
到了这里,关于Django dumpdata 迁移数据库数据的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!