如何在sqlite数据库上保留更改

时间:2016-01-31 12:15:33

标签: django database sqlite heroku

我有一个带有SQLite数据库的Django应用程序。这个应用程序部署在Heroku上。

当有人使用该应用程序并将数据添加到数据库中时,会修改sqlite数据库。但是当我在Github上进行代码更改然后部署我的应用程序的这个新版本时,我还部署了sqlite数据库(它没有用户做出新的更改),所以我删除了更改。

防止这种情况的最佳方法是什么?

2 个答案:

答案 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插件。