在Heroku上使用Ebean和Play Framework

时间:2012-09-01 01:21:00

标签: heroku playframework-2.0 ebean

我在Play Framework 2中使用Ebean来存储一些基本信息。这个应用程序被推送到Heroku。一切似乎都很好,我可以用Ebean写/读,但几个小时后,当我访问应用程序时,存储的所有内容都消失了。

this source我知道,当不经常访问应用程序时,需要启动它。这意味着,运行应用程序在空闲一段时间后会关闭,对吗?

  

很少访问的免费应用程序需要几秒钟(有时更长)才能启动 - 如果您需要应用程序即使在第一次访问时也能快速响应 <升级到付费计划/ p>

我发现这个问题No permanent filesystem for Heroku?解释了Heroku上没有永久文件系统。

因此,Ebean将数据存储在文件系统上,这意味着它们会被删除,因为Heroku上没有永久文件系统。

我应该提一下,我在Heroku上使用免费应用程序。 有什么建议如何解决这个问题? 也许我错过了一些配置或其他东西......

修改

我使用保存在文件中的H2数据库。

2 个答案:

答案 0 :(得分:0)

为什么不在你的免费计划中使用Heroku的Postgresql?

在最近几天有一些关于使用它的问题,所以你应该没有配置它的问题,即:https://stackoverflow.com/a/12196800/1066240

答案 1 :(得分:0)

来自heroku docs

  

已扩展网络动态数据量的应用程序(运行网络的动态数据库)   进程类型)这样只有一个web dyno正在运行   网络dyno在一小时不活动后闲置了。 ...那些应用程序   有超过1个web dyno运行永远不会闲置。工人dynos   永远不会闲着。

关于文件系统生命周期:

  

短暂的文件系统

     

每个dyno都有自己的短暂文件系统,并带有最近部署代码的全新副本。在dyno的生命周期中,它的运行进程可以使用文件系统作为临时暂存器,但是没有任何其他进程可以看到写入的文件   dyno和所写的任何文件都会在dyno出现的那一刻被丢弃   停止或重新启动。

因此,由于您将H2与文件系统中存储的文件一起使用,因此在一小时不活动后数据将会丢失。

为了存储您的数据,我强烈建议您使用免费提供10.000行的Postgres Heroku addon