Heroku 将数据库从一个应用程序传输到另一个应用程序

2024-01-15

我需要将数据库从 app_1 传输到 app_2

我在 app_1 上创建了备份

然后跑:

heroku pg:备份恢复 HEROKU_POSTGRESQL_COLOR --app app_2heroku pgbackups:url --app app_1

HEROKU_POSTGRESQL_COLOR = app_2 的数据库 URL

然后我得到:

 !    `pg:backups` is not a heroku command.
 !    Perhaps you meant `pgbackups`.
 !    See `heroku help` for a list of available commands.

所以我跑了:

heroku pgbackups:恢复 HEROKU_POSTGRESQL_COLOR --app app_2heroku pgbackups:url --app app_1

然后我得到以下信息:

!    WARNING: Destructive Action
!    This command will affect the app: app_2
!    To proceed, type "app_2" or re-run this command with --confirm app_2

所以我确认了:

> app_2
 !    Please add the pgbackups addon first via:
 !    heroku addons:add pgbackups

然后我跑了:heroku addons:add pgbackups --app app_2

Adding pgbackups on app_2... failed
 !    Add-on plan not found.

有办法解决这个问题吗?任何帮助将不胜感激!

* 解决方案 *

我最终给 Heroku 发了电子邮件,他们建议我需要heroku update; heroku plugins:update but heroku update仅适用于 heroku toolbelt,并且我安装了 gem。

解决方案:

安装 Heroku 工具带here https://toolbelt.heroku.com/

然后卸载gem:

gem uninstall heroku --all

运行以下命令来获取版本,它应该输出heroku-toolbelt,而不是宝石,更多信息here https://devcenter.heroku.com/articles/heroku-command

$ heroku --version
  heroku-toolbelt/2.39.0 (x86_64-darwin10.8.0) ruby/1.9.3

要将数据库复制到:

heroku pg:backups restore `heroku pgbackups:url --app app_1` HEROKU_POSTGRESQL_COLOR --app app_2

但更好的是,您可以直接从一个数据库复制到另一个数据库,而无需备份:

假设 app_2 数据库 url 为:HEROKU_POSTGRESQL_GOLD

heroku pg:copy app_1::DATABASE_URL GOLD -a app_2 

这会将主数据库从 app_1 复制到 app_2 上的 GOLd 数据库


现在您无需备份,这是将数据库从应用程序复制到应用程序的唯一 1 个命令:

heroku pg:copy app_name_to_copy_from::database_color_to_copy_from database_color_to_copy_to --app app_name_to_copy_to

核实here https://devcenter.heroku.com/articles/upgrading-heroku-postgres-databases#upgrade-with-pgbackups-copy-default

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Heroku 将数据库从一个应用程序传输到另一个应用程序 的相关文章

随机推荐