如何仅使用 heroku 上的 postgres 转储来恢复我的数据库数据

Posted

技术标签:

【中文标题】如何仅使用 heroku 上的 postgres 转储来恢复我的数据库数据【英文标题】:How can I restore my database data with only postgres dump on heroku 【发布时间】:2021-06-05 05:27:35 【问题描述】:

我的 heroku 应用程序达到了构建限制,但我仍然想做很多更改,我想出了创建另一个应用程序并使用与第一个应用程序相同的数据库,然后删除第一个应用程序并将我创建的第二个应用程序重命名为已删除的第一个应用程序的名称,但是当我删除第一个应用程序时,我遇到的问题数据库也被删除了,但在删除该应用程序之前,我下载了 postgres 转储进行备份,所以现在我将它上传到我的 github恢复我的数据。

现在我正在运行以下命令

heroku pg:backups:restore 'https://github.com/myusername/repo/path/branch/latest.dump' --app myappname --c
onfirm myappname

但我收到以下错误

Restoring... !
 !    An error occurred and the backup did not finish.
 !
 !    waiting for restore to complete
 !    pg_restore finished with errors
 !    waiting for download to complete
 !    download finished with errors
 !    please check the source URL and ensure it is publicly accessible
 !

所以我想知道我是否可以做些什么来执行备份,或者我只是浪费了,真的需要你的帮助

提前致谢

【问题讨论】:

【参考方案1】:

您使用错误的 URL 指向转储文件,

https://github.com/myusername/repo/path/branch/latest.dump 是一个blob_url,它类似于网页的URL,我们通过访问blob_url 得到文件的呈现html 版本。

您应该使用 raw_url 指向哑文件,要获取 raw_url,请单击相应文件的 blob 页面上的 Raw 按钮

希望这应该可行

【讨论】:

以上是关于如何仅使用 heroku 上的 postgres 转储来恢复我的数据库数据的主要内容,如果未能解决你的问题,请参考以下文章

如何从 Postgres Heroku 上的先前备份中恢复特定数据? (例如,意外删除的行)

可以访问Heroku Postgres仅限于IP白名单吗?

如何使用 Python 迁移将 Heroku Django 应用程序的新模型表添加到远程 Heroku Postgres?

如何在 Heroku 中将 Kafka 连接到 Postgres

无法使用 Heroku postgres 将数据添加到 Spring Boot 上的数据库

我的新迁移将破坏我在 heroku (postgres) 上的数据库