Django:Heroku休眠后突然重置数据库

4

我有一个非常简单的Django应用程序(从Django教程中获取),运行在SQLite数据库上,并托管在Heroku上。

它运行正常,但由于某种原因,每当Heroku从空闲状态唤醒时,问题都会被重置为初始状态(我只有一个dyno)。我可以删除问题,添加新问题,但是重置后会出现初始问题集。

我该如何防止重置并且原因是什么? 非常感谢您的帮助。


我该如何防止重置,原因是什么? - Yahor
如何在Heroku上部署的优秀指南可以在Coding for Entrepreneurs Github中找到。 https://github.com/codingforentrepreneurs/Guides/blob/master/all/Heroku_Django_Deployment_Guide.md - keno
1个回答

5

Heroku dynos拥有一个短暂的文件系统(https://devcenter.heroku.com/articles/dynos#ephemeral-filesystem)。由于您正在使用实际上是文件系统上的文件的SQLite,所以一切都会顺利运行,直到运行应用程序的dyno需要重新启动 - 因此其文件系统将被重置,您将失去所有内容!

为了避免这种情况,请配置您的应用程序使用Heroku-Postgresql。


谢谢你,Serafeim!防止Heroku休眠也应该有所帮助,对吗? - Yahor
嗯,很可能是的。然而,dynos每天都会重新启动一次(https://devcenter.heroku.com/articles/dynos#automatic-dyno-restarts),所以你肯定需要使用普通的数据库。临时文件系统只应该用作临时的草稿本,绝对不能用来存储数据库 :-) - Serafeim

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接