Heroku数据库还原问题

时间:2017-02-24 07:57:18

标签: postgresql heroku heroku-postgres

已经在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

然后根据文档,将其上传到具有公共访问网址的服务器: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恢复heroku pg:backups:restore [BACKUP] [DATABASE] --app APP时,它会在恢复时返回错误消息。

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文件时,它可以正常工作,并使用表和数据创建/恢复整个数据库。

Command console screen

Info log

2 个答案:

答案 0 :(得分:1)

在日志中,您会看到转储大小: 0字节。您还会看到正在中止 403 , 因此,如果您检查文件: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
     

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

答案 1 :(得分:0)

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

其中一个,.dump上传的heroku文件无法读取/使用。

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

  

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

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

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