Heroku:几分钟后如何阻止我的Postgres数据库消失?

时间:2017-02-17 16:04:52

标签: heroku heroku-postgres

昨天我向Heroku上传了一个带有多个数据库的Rails 5应用程序。我有一个业余爱好开发postgres附加组件。今天早上我使用根据Heroku文档创建的pg_dump备份成功导入了我的7个Postgres数据库。

PGPASSWORD=mypassword pg_dump -Fc --no-acl --no-owner -h localhost -U myuser mydb > mydb.dump

heroku pg:backups:restore 'https://s3.amazonaws.com/me/items/3H0q/mydb.dump' HEROKU_POSTGRESQL_COLOR_URL

有几次我导入了这些数据库,因为几分钟后它们就消失了。我运行了我的Heroku应用程序并成功访问了第一个数据库,但当我尝试访问第二个数据库时,我收到了一个'关系" xxxx"不存在'。当我回到我的数据存储区时,数据库已经消失了。当我第二次尝试运行我的应用程序时,我得到了一个关系" xxxx"不存在'在我上次运行我的应用程序时成功访问的第一个表上。

当我查看数据库的数据存储时,我没有看到任何错误。他们只是消失了。我检查了一下我可以用爱好开发的数据库数量是否有限制,但没有看到任何数据库。行数低于10,000。每次导入我的pg_dump文件时,都会收到一条关于行数的警告电子邮件。

UPDATE 2/17/2017 10:42 AM central:到目前为止我唯一发现的是一些帖子,说明Heroku文件系统是短暂的,并且在dyno重启之间不会持续存在。如果这是我的问题:

  1. 如果我没有重新启动,我如何知道dynos何时重启?当我的数据库消失时,我没有重新启动我的应用程序。
  2. 如何使用Postgres插件永久存储我的数据库,还是必须将数据库存储在其他地方?当然,附加组件有一种永久存储数据库的方法。

1 个答案:

答案 0 :(得分:0)

我假设您使用Heroku PostgreSQL产品(而不是尝试自己设置)。如果是这种情况,那么dyno文件系统的短暂性质就不应该是您关注的问题。

我建议您首先创建七个(空)数据库并查看它们是否消失。您可以使用

创建单个数据库
heroku addons:create heroku-postgresql:hobby-dev

每次调用后运行heroku pg:wait,等待数据库配置完毕。如果数据库没有消失,请尝试恢复备份。