【问题标题】:Heroku database restore issueHeroku 数据库恢复问题
【发布时间】:2017-07-14 23:26:59
【问题描述】:

stackoverflow 和不同的论坛上浏览过不同的解决方案。但没有一个能解决确切的问题。

根据文档:https://devcenter.heroku.com/articles/heroku-postgres-import-export

我从本地数据库创建了dump 文件,使用以下命令:

pg_dump -Fc --no-acl --no-owner -h localhost -U postgres dss_iaya>dss_iaya_db_dump1.dump

然后根据文档,上传到具有公共访问 URL 的服务器:https://firebasestorage.googleapis.com/v0/b/iaya-664f3.appspot.com/o/dss_iaya_db_dump1.dump?alt=media&token=06167d04-1e98-4e4b-b0e0-9d83a86dd167

现在,当我尝试使用以下命令根据其文档语法 heroku pg:backups:restore [BACKUP] [DATABASE] --app APPHeroku 上恢复时,它会在恢复时返回错误消息。

heroku pg:backups:restore  --app heroku-postgres-*** 'https://firebasestorage.***/dss_iaya_db_dump1.dump?alt=media&token=***' 'postgres://quesu***:I***@ec2-54-***.eu-west-1.compute.amazonaws.com:5432/d3n***k0' 

我仅出于安全目的使用 ***,因为不能提及完整的凭据。但我相信人们可以理解整个语法。

当我在新创建的本地数据库上恢复相同的 .dump 文件时,它可以正常工作并使用表和数据创建/恢复整个数据库。

【问题讨论】:

  • heroku pg:backups:info r006 显示了什么?..

标签: postgresql heroku heroku-postgres


【解决方案1】:

刚刚找到解决方案,在我的情况下实际上有两件事是错误的。

一,上传的.dump文件不能被heroku很好地读取/使用。

二,heroku postgresql DB 的完整 URL 不需要提供。

所以,对我有用的正确方法是上传的文件应该可以访问没有任何令牌,也没有任何虚拟/间接路径等。文件的 URL 应该直接指向文件强>。 在我质疑的问题中,我使用firebase 临时托管我的数据库文件以执行heroku 操作。而firebase 没有给出上传物理文件的直接 URL

heroku pg:backups:restore  --app heroku-postgres-f3*** 'https://www.h***.com/dss_iaya_db_dump2.dump' DATABASE_URL

输入此命令后,我被要求重新输入heroku 应用程序名称以确认操作。完成后,一切都像魅力一样发挥作用。

【讨论】:

    【解决方案2】:

    在日志中您会看到转储大小:0 字节。您还看到 aborting403, 所以如果你检查你的文件:https://llfirebasestorage.googleapis.com/vo/b/iaya-664f3.appspot.com/0/dss_iaya_db_dump1.dump?a1t=media

    你得到:

    404. That’s an error.
    
    The requested URL /vo/b/iaya-664f3.appspot.com/0/dss_iaya_db_dump1.dump was not found on
    

    这台服务器。这就是我们所知道的一切。

    【讨论】:

    • 谢谢,这正确指向了问题区域的方向。不过,我刚刚发布了该问题的解决方案。喜欢你的快速反应:)
    猜你喜欢
    • 2016-06-10
    • 1970-01-01
    • 2015-03-30
    • 1970-01-01
    • 2020-12-17
    • 2015-11-17
    • 1970-01-01
    • 2016-08-25
    • 1970-01-01
    相关资源
    最近更新 更多