Heroku:如何阻止我的 Postgres 数据库在几分钟后消失?
Heroku: How Can I Stop My Postgres Databases from Disappearing after a few minutes?
昨天我上传了一个有多个数据库的 Rails 5 应用程序到 Heroku。我有一个 hobby-dev 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 应用程序和第一个数据库已成功访问,但当我尝试访问第二个数据库时,我收到 'relation "xxxx" does not exist'。当我回到我的数据存储区时,数据库不见了。当我第二次尝试 运行 我的应用程序时,我在上次 运行 我的应用程序成功访问的第一个 table 上得到了 'relation "xxxx" does not exist'
当我查看数据库的数据存储时,我没有看到任何错误。他们就这么消失了。我检查了 hobby-dev 的数据库数量是否有限制,但没有看到任何限制。行数低于 10,000。每次导入 pg_dump 文件时,我都会收到一封关于行数的警告电子邮件。
更新 2/17/2017 10:42 AM central:到目前为止,我唯一发现的是一些帖子指出 Heroku 文件系统是短暂的,并且不会在 dyno 重启之间持续存在。如果这是我的问题:
- 如果我不重启dynos,我怎么知道它什么时候重启?当我的数据库消失时,我没有重新启动我的应用程序。
- 我如何使用 Postgres 附加组件永久存储我的数据库,或者我是否必须将我的数据库存储在其他地方?当然,附加组件有办法永久存储数据库。
我假设您使用 Heroku PostgreSQL 产品(而不是尝试自行设置)。如果是这样的话,您就不必担心 dyno 文件系统的短暂性。
我建议您先创建七个(空的)数据库,看看它们是否消失了。您可以使用
创建单个数据库
heroku addons:create heroku-postgresql:hobby-dev
每次调用后 运行 heroku pg:wait
等待数据库配置完毕。如果数据库没有消失,请尝试恢复备份。
昨天我上传了一个有多个数据库的 Rails 5 应用程序到 Heroku。我有一个 hobby-dev 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 应用程序和第一个数据库已成功访问,但当我尝试访问第二个数据库时,我收到 'relation "xxxx" does not exist'。当我回到我的数据存储区时,数据库不见了。当我第二次尝试 运行 我的应用程序时,我在上次 运行 我的应用程序成功访问的第一个 table 上得到了 'relation "xxxx" does not exist'
当我查看数据库的数据存储时,我没有看到任何错误。他们就这么消失了。我检查了 hobby-dev 的数据库数量是否有限制,但没有看到任何限制。行数低于 10,000。每次导入 pg_dump 文件时,我都会收到一封关于行数的警告电子邮件。
更新 2/17/2017 10:42 AM central:到目前为止,我唯一发现的是一些帖子指出 Heroku 文件系统是短暂的,并且不会在 dyno 重启之间持续存在。如果这是我的问题:
- 如果我不重启dynos,我怎么知道它什么时候重启?当我的数据库消失时,我没有重新启动我的应用程序。
- 我如何使用 Postgres 附加组件永久存储我的数据库,或者我是否必须将我的数据库存储在其他地方?当然,附加组件有办法永久存储数据库。
我假设您使用 Heroku PostgreSQL 产品(而不是尝试自行设置)。如果是这样的话,您就不必担心 dyno 文件系统的短暂性。
我建议您先创建七个(空的)数据库,看看它们是否消失了。您可以使用
创建单个数据库heroku addons:create heroku-postgresql:hobby-dev
每次调用后 运行 heroku pg:wait
等待数据库配置完毕。如果数据库没有消失,请尝试恢复备份。