加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

postgresql – 如何使用pgbackups将生产数据库转移到Heroku上的

发布时间:2020-12-13 16:44:22 所属栏目:百科 来源:网络整理
导读:在Heroku,我试图使用pgbackups插件将生产数据库复制到我的临时应用程序。我按照插件页面上的说明: https://devcenter.heroku.com/articles/pgbackups 首先我捕获了DB: heroku pgbackups:capture --app production-app 这工作: HEROKU_POSTGRESQL_PURPLE
在Heroku,我试图使用pgbackups插件将生产数据库复制到我的临时应用程序。我按照插件页面上的说明: https://devcenter.heroku.com/articles/pgbackups

首先我捕获了DB:

heroku pgbackups:capture --app production-app

这工作:

HEROKU_POSTGRESQL_PURPLE (DATABASE_URL)  ----backup--->  b238

Capturing... done
Storing... done

但是,当我尝试在临时应用程序恢复它:

heroku pgbackups:restore DATABASE `heroku pgbackups:url --app production-app` --remote staging

我得到以下错误消息:

DATABASE_URL does not match any of your databases
 !    Could not resolve database DATABASE
 !    
 !    Available databases:

我也试过输入完整的网址:

heroku pgbackups:url b238 --app production-app
 heroku pgbackups:restore DATABASE "https://s3.amazonaws.com/..." --remote staging

并尝试命名应用程序(而不是–remote staging):

heroku pgbackups:restore DATABASE `heroku pgbackups:url --app production-app` --app staging-app

没有一个工作。有趣的是,错误消息表明没有“可用数据库”。我假设它是指的分段应用程序是确实为空。如果我键入:

heroku pgbackups

我得到:

!    No backups. Capture one with `heroku pgbackups:capture`.

要找到可用的备份(生产),我需要键入:

heroku pgbackups --app production-app

我得到当前备份的列表。我不知道这是否正常,即使它是与问题有关,但我认为我应该提一下。

我已阅读并尝试每一个答案在这里,但没有工作。有任何想法吗?

2015年中更新…

pgbackups附加组件已被弃用。没有更多pgbackups:转移。

要将数据库从yourapp(数据库名称:HEROKU_POSTGRESQL_PINK_URL)复制到yourapp_staging(数据库名称:HEROKU_POSTGRESQL_WHITE_URL)

# turn off the web dynos in staging
heroku maintenance:on -a yourapp-staging

# if you have non-web-dynos,do them too
heroku ps:scale worker=0 -a yourapp-staging

# backup the staging database if you are paranoid like me (optional)
heroku pg:backups capture -a yourapp-staging

# execute the copy
heroku pg:copy yourapp::HEROKU_POSTGRESQL_PINK_URL HEROKU_POSTGRESQL_WHITE_URL -a yourapp-staging

然后当它完成后,重新开始分期:

# this is if you have workers,change '1' to whatever
heroku ps:scale worker=1 -a yourapp-staging

heroku maintenance:off -a yourapp-staging

提醒:您可以使用heroku pg:info -a yourapp-staging(和yourapp)来获取数据库名称 – 查看第一行,在===之后。

(来源:https://devcenter.heroku.com/articles/upgrading-heroku-postgres-databases#upgrade-with-pg-copy-default)

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读