已经在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
文件时,它可以正常工作,并使用表和数据创建/恢复整个数据库。
答案 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
应用名称以确认操作。一旦完成,一切都像魅力一样。