Python 在不覆盖数据库的情况下推送到Heroku

Python 在不覆盖数据库的情况下推送到Heroku,python,git,postgresql,heroku,flask,Python,Git,Postgresql,Heroku,Flask,我有一个相当简单的问题,但由于我对Heroku和整个git概念还不熟悉,所以我有点困惑。我用谷歌搜索了这个问题,但没有找到充分的答案。也许你能帮忙 我刚刚开始编写一个Flask应用程序,基于,我在Heroku上推了它,因此我使用了,我使用以下行从我的终端(在Mac上)推送更改: 每次我用这条线执行推送时,我的生产数据库又是空的。但我不希望这种情况一直发生。我能做什么?也许你们对此有所了解。只需修改以检查entries表是否已经存在:如果已经存在,则不要加载schema.sql这是因为SQLite

我有一个相当简单的问题,但由于我对Heroku和整个git概念还不熟悉,所以我有点困惑。我用谷歌搜索了这个问题,但没有找到充分的答案。也许你能帮忙

我刚刚开始编写一个Flask应用程序,基于,我在Heroku上推了它,因此我使用了,我使用以下行从我的终端(在Mac上)推送更改:


每次我用这条线执行推送时,我的生产数据库又是空的。但我不希望这种情况一直发生。我能做什么?也许你们对此有所了解。

只需修改以检查entries表是否已经存在:如果已经存在,则不要加载schema.sql

这是因为SQLite对于Heroku来说是一个坏的选择。以下内容摘自:

SQLite在内存中运行,并将其数据存储备份到磁盘上的文件中。虽然这种策略在开发中效果很好,但Heroku的Cedar堆栈有一个短暂的文件系统。您可以写入它,也可以读取它,但内容将定期清除。如果您在Heroku上使用SQLite,您将至少每24小时丢失一次整个数据库

即使Heroku的磁盘是持久性的,运行SQLite仍然不是一个好的选择。由于SQLite不是作为服务运行的,因此每个dyno将运行一个单独的运行副本。每个拷贝都需要自己的磁盘备份存储。这意味着为应用程序供电的每个dyno都会有一组不同的数据,因为磁盘不同步

您可以将应用程序配置为在Postgres上运行,而不是在Heroku上使用SQLite


这是一种可能性是的,但我想知道Git中是否存在这种可能性。但是谢谢你!哦,天哪,我完全忘了SQLite在内存中运行。非常感谢。忘记是很平常的事;我很高兴这有帮助:)
$ git add -A
$ git commit -m "Pushing to Heroku"
$ git push -f heroku