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

如何将Heroku上Django生产应用的sqlite3数据迁移到本地localhost应用

Heroku Django sqlite3 生产数据迁移到本地方案

前置验证

先确认本地和生产的Django版本、所有依赖包版本、数据库迁移文件完全一致,避免字段不匹配导致迁移失败。

方案1:Django 原生导入导出(兼容性最高,推荐)

  • 导出生产数据
    1. 本地终端执行命令登录Heroku生产shell:heroku run bash -a 你的Heroku应用名称
    2. 进入Django项目根目录后,执行导出命令,排除易冲突的系统表:
      python manage.py dumpdata --exclude contenttypes --exclude auth.permission --exclude sessions --indent 2 > production_data.json
      
    3. 退出生产shell,执行命令将导出的json文件拉取到本地:heroku ps:copy production_data.json -a 你的Heroku应用名称
  • 导入本地环境
    1. 本地终端进入项目根目录,先执行迁移保证表结构完整:python manage.py migrate
    2. 若需要清空本地原有业务数据,执行:python manage.py flush
    3. 执行导入命令:python manage.py loaddata production_data.json
    4. 启动本地Django服务,验证数据完整性即可。

方案2:直接复制sqlite3数据库文件(操作简单,适合小数据量)

  • 拉取生产数据库文件
    1. 本地终端执行:heroku ps:copy db.sqlite3 -a 你的Heroku应用名称(默认数据库文件路径为项目根目录下的db.sqlite3,若你修改过路径替换为对应路径即可)
  • 替换本地数据库
    1. 关闭本地运行的Django服务,备份本地原有的db.sqlite3文件后删除
    2. 将拉取到的生产环境db.sqlite3放到项目对应路径即可直接使用。

额外提示

Heroku的文件系统是临时存储,dyno重启、重新部署后所有写入的文件都会被重置,你当前生产环境使用sqlite3存储业务数据存在数据丢失风险,建议后续更换为Heroku Postgres等持久化数据库服务。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 22:06:04