我有一个带有SQLite
数据库的Django应用程序。这个应用程序部署在Heroku上。
当有人使用该应用程序并将数据添加到数据库中时,会修改sqlite数据库。但是当我在Github上进行代码更改然后部署我的应用程序的这个新版本时,我还部署了sqlite数据库(它没有用户做出新的更改),所以我删除了更改。
防止这种情况的最佳方法是什么?
答案 0 :(得分:0)
我不太了解Heroku,但如果在Heroku上有你的数据库文件的单独副本,那么你应该将你的sqlite文件添加到.gitignore文件中。这样你就不会将sqlite文件和其他代码一起发送到Heroku。此外,您还需要删除已添加的repo中的sqlite文件。搜索更多关于gitignore的信息。 Django项目的一般.gitignore包含以下内容 -
*.pyc
__pycache__
myvenv
db.sqlite3
.DS_Store
settings.py
只需将其复制到您现有的gitignore或制作新的(如果尚未存在)。 gigignore文件通常出现在项目的根目录中。
答案 1 :(得分:0)
解决方案很简单:你不能在Heroku上使用sqlite。正如您所发现的,Heroku上的文件系统是短暂的,并且在部署之间不会保留更改。另外,如果您缩放到多个dyno,它们将不会共享相同的数据库。
改为使用Postgres插件。