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

本地Django项目Sqlite表数据未迁移至Heroku PostgreSQL数据库问题排查

解决Django本地SQLite数据迁移到Heroku PostgreSQL的问题

嘿,我懂你碰到的麻烦了——Django的migrate命令只会同步数据库的表结构,不会自动把本地SQLite里的数据迁移到远程PostgreSQL,这就是为啥你表结构同步成功但数据没过去的核心原因。你的settings配置是没问题的,dj_database_url确实会在Heroku部署时自动覆盖默认的SQLite配置,所以迁移表结构能正常运行。

要把本地数据同步到Heroku的PostgreSQL,你需要手动完成导出再导入的流程,具体步骤如下:

1. 导出本地SQLite数据

在本地项目根目录执行这条命令,把数据导出为JSON文件:

python manage.py dumpdata --exclude auth.permission --exclude contenttypes > data.json

这里排除auth.permission和contenttypes是因为这两类数据是Django自动生成的,当你在Heroku上执行migrate后,远程数据库已经存在这些数据,直接导入会引发冲突。

2. 将数据文件上传到Heroku

先确认data.json没有被你的.gitignore文件排除,然后提交到Git并推送到Heroku:

git add data.json
git commit -m "Add local data dump for Heroku import"
git push heroku main

3. 在Heroku上导入数据

执行这条命令,把JSON文件里的数据导入到远程PostgreSQL:

heroku run python manage.py loaddata data.json

额外注意事项

  • 如果你的项目有自定义用户模型,或者存在复杂的外键关联,可能需要检查导出的JSON数据是否有依赖顺序问题,必要时可以分模块导出再导入。
  • 如果数据量很大,dumpdata的效率可能不高,这时可以考虑用PostgreSQL原生的pg_dump和pg_restore工具,但对于小型项目来说,上面的方法简单又好用。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.27 13:24:07