ruby-on-rails – 在删除应用程序后,Heroku数据库是否存在 – 我
我有一个在Cedar-10堆栈上运行的Heroku应用程序,很快就会被弃用.我正在关注
Migrating to the Celadon Cedar-14 Stack指南,并在新堆栈上创建了我的应用程序实例.但是,这也自动创建了另一个(空的)PostgreSQL数据库.
>我可以升级到新堆栈但是继续使用现有数据库吗? 我看到数据库URL是在环境变量$DATABASE_URL中设置的 – 这是否意味着我可以以某种方式更新它并将旧数据库“链接”到新应用程序? 在搜索有关这方面的信息时,我遇到了heroku的pg:copy和pg:transfer指令,但是当它正常工作时复制数据库并且有一个付费的“升级”和已经与之关联的备份似乎很奇怪. 解决方法
配置变量方法的问题
虽然通过将第一个应用程序的DATABASE_URL配置变量复制到第二个应用程序可以在Heroku中使用share a database between two applications,但只有第一个应用程序将具有数据库的主连接(附件). 如果删除第一个应用程序,您的数据库将从Heroku的postgres dashboard中消失.虽然看起来第二个应用程序仍然可以使用数据库. (测试于2015-10-25.) 值得注意的是:
这意味着如果Heroku决定更改数据库的URL,您的新应用程序将失败,并且由于数据库现在已从仪表板中消失,因此您将无法在不接近Heroku的情况下检索新URL. (如果有的话.) 这意味着应用程序与其数据库之间存在比仅仅DATABASE_URL更多的内在连接,并且将其用作传输机制可能不是最佳选择. 使用PGBackups的另一种方法 Heroku official documentation建议使用免费的PGBackups附加组件(老实说,你应该总是运行它)来在Postgres实例之间传输数据.该工具使用本机pg_dump和pg_restore工具. 特别是,您可以使用PG copy功能,如下所述:
它们为您提供了一种方法,您可以使用单个命令在应用程序之间复制数据库,而无需任何中间存储:
例: heroku pg:copy source-application::OLIVE HEROKU_POSTGRESQL_PINK -a target-application source-application是您现有的堆栈,target-application是您新创建的堆栈.与您无关,但仍然值得一提的是,目标应用程序数据库中的任何现有数据都将被销毁. 在此之后,您可能需要在新应用程序中升级数据库,如下所示: heroku pg:promote HEROKU_POSTGRESQL_PINK (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |