如何将Heroku上Flask应用的something.db同步回GitHub仓库?
解决Heroku上SQLite数据库反向同步回GitHub的问题
因为Heroku部署时会完全拉取GitHub仓库的代码,空的something.db会直接覆盖线上已有数据。针对小项目的.db文件存储需求,手动同步是最直接可行的方案,步骤如下:
拉取Heroku上的数据库文件到本地
使用Heroku CLI的ps:copy命令,将线上的something.db复制到本地。注意替换你的应用名称,以及db文件在Heroku上的实际路径(比如Flask应用若把db放在instance目录下,路径就是/app/instance/something.db):heroku ps:copy /app/something.db ./something.db -a your-heroku-app-name验证本地数据库文件
用SQLite工具确认拉取的文件包含最新数据,比如执行:sqlite3 something.db进入交互模式后,用
.tables查看表结构,或用SELECT * FROM your_table;查询数据,确保同步结果正确。提交更新到GitHub
将本地更新后的something.db提交并推送到GitHub仓库:git add something.db git commit -m "Sync latest SQLite data from Heroku" git push origin main(如果你的主分支是
master,就把main替换为master)后续部署注意事项
以后每次从GitHub重新部署前,先重复上述步骤,把Heroku上的最新数据库同步回GitHub,这样新部署的应用就会使用包含用户数据的something.db,不会再出现数据被覆盖的问题。
内容的提问来源于stack exchange,提问作者dynamic-stacker
相关产品推荐
相关产品推荐

