You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Cookiecutter Django项目Postgres数据库迁移至新主机方法咨询

Postgres 数据迁移到Docker生产环境的推荐方案

针对你的Cookiecutter Django项目,推荐使用PostgreSQL原生的pg_dump和psql工具完成数据迁移,步骤如下:

1. 从本地PostgreSQL导出数据

  • 如果本地PostgreSQL是Docker容器运行的,先进入容器终端:
    docker exec -it <本地Postgres容器名> bash
    
  • 执行导出命令生成SQL备份文件(替换<数据库用户名>和<数据库名>为你的实际配置):
    pg_dump -U <数据库用户名> <数据库名> > backup.sql
    
    若需压缩备份节省空间,可改用:
    pg_dump -U <数据库用户名> <数据库名> | gzip > backup.sql.gz
    
  • 若备份文件在容器内,将其复制到本地主机:
    docker cp <本地Postgres容器名>:/backup.sql ./
    

2. 传输备份文件到生产主机

用scp或rsync将备份文件传到生产服务器(替换<生产服务器用户名>、<生产服务器地址>和目标路径):

scp ./backup.sql <生产服务器用户名>@<生产服务器地址>:/tmp/

3. 在生产Docker Postgres中导入数据

  • 确保生产环境的Postgres容器已启动,且空数据库已创建(Cookiecutter Django的Docker配置通常会自动完成这一步)
  • 将备份文件复制到生产Postgres容器内:
    docker cp /tmp/backup.sql <生产Postgres容器名>:/tmp/
    
  • 进入生产Postgres容器终端:
    docker exec -it <生产Postgres容器名> bash
    
  • 执行导入命令(替换生产环境的数据库用户名和数据库名):
    psql -U <生产数据库用户名> <生产数据库名> < /tmp/backup.sql
    
    如果是压缩备份,先解压再导入:
    gzip -d /tmp/backup.sql.gz
    psql -U <生产数据库用户名> <生产数据库名> < /tmp/backup.sql
    

4. 验证迁移结果

  • 进入生产Postgres容器,查询关键表数据确认:
    psql -U <生产数据库用户名> <生产数据库名> -c "SELECT * FROM auth_user LIMIT 5;"
    
  • 启动Django应用容器,检查前端页面和接口是否能正常读取、操作数据

关键注意事项

  • 迁移前暂停生产环境的Django应用容器,避免数据写入冲突
  • 保证本地和生产环境的PostgreSQL版本尽量一致,避免SQL语法兼容性问题
  • Cookiecutter Django存储的用户密码是加密后的哈希值,迁移后无需额外处理即可正常登录
  • 大体积数据建议在业务低峰期执行迁移,减少对服务的影响

内容的提问来源于stack exchange,提问作者Jordan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.05 10:16:14