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

使用GitHub部署Django应用至Heroku时本地数据未同步问题求助

问题原因解释

不管用Heroku Git还是GitHub部署,Django的makemigrations/migrate命令仅负责同步数据库表结构,不会将本地数据库里的实际业务数据(比如用户、帖子)自动传到Heroku。你之前用Heroku Git部署时数据正常,大概率是当时手动做过数据导入操作,或是混淆了表结构与实际数据的区别。

GitHub部署本身不会导致数据不同步,核心问题在于你未将本地数据导出并导入到Heroku的数据库中。

解决步骤

1. 导出本地数据

如果本地使用SQLite,执行以下命令生成数据备份文件:

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

排除auth.permission和contenttypes是因为这两类数据由Django自动生成,Heroku端会自行创建,避免导入时出现冲突。

2. 上传备份文件到Heroku

  • 若用GitHub部署:将local_data.json提交到GitHub仓库(确认.gitignore未排除该文件),等待GitHub自动完成部署。
  • 若用Heroku CLI直接上传:
heroku local_data.json --app your-heroku-app-name

3. 在Heroku上导入数据

通过Heroku CLI执行导入命令:

heroku run python manage.py loaddata local_data.json --app your-heroku-app-name

4. 验证数据

可通过Heroku CLI连接数据库查询数据,或直接访问应用确认内容:

heroku pg:psql --app your-heroku-app-name
# 进入数据库后执行查询,例如:
SELECT * FROM users_user;
SELECT * FROM posts_post;
后续注意事项
  • 本地SQLite数据不会自动同步到Heroku,每次本地数据更新后,需重复「导出-上传-导入」流程。
  • 生产环境建议直接使用Heroku Postgres作为开发数据库,既避免SQLite与Postgres的兼容性问题,也能简化数据同步操作。
  • 确保GitHub部署时,migrations文件夹内的迁移文件已全部提交到仓库,否则Heroku执行migrate会失败,导致表结构无法创建。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 02:41:57