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

如何在Heroku部署Django应用后恢复Sqlite数据库数据

操作前置说明
  • Heroku采用临时文件系统,应用重启、重新部署、dyno实例休眠回收时,所有写入磁盘的文件都会被清空。SQLite为文件型数据库,写入的新数据会在上述场景下丢失,该方案仅适用于临时测试,生产环境建议更换为Heroku提供的PostgreSQL数据库服务。
恢复操作步骤

方案1:使用Django原生数据导入导出(推荐,适配所有数据库类型)

该方案适用于你手里的dump是Django dumpdata 命令导出的json格式文件,如果你还未生成本地dump,先在本地项目目录执行:
python manage.py dumpdata > data_dump.json

后续操作流程:

  • 将生成的data_dump.json放在Django项目根目录,提交代码到Heroku
git add data_dump.json
git commit -m "添加本地数据导出文件"
git push heroku main
  • 先确保远程数据库表结构和本地一致,执行迁移命令:
    heroku run python manage.py migrate
  • 执行数据导入:
    heroku run python manage.py loaddata data_dump.json
  • 验证数据:可以进入Heroku远程shell查询确认
    heroku run python manage.py shell

方案2:直接使用本地SQLite数据库文件

如果你手里的dump是完整的db.sqlite3原文件:

  • 将db.sqlite3放在项目根目录,和你本地Django配置的数据库路径保持一致
  • 提交文件到Heroku即可,当前部署版本可以直接读取该文件内的所有数据

注意:该方式下所有后续新增的数据都不会持久化,应用重启后数据会恢复为你提交时的db.sqlite3版本内容。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 13:06:03