【发布时间】:2021-01-20 02:40:47
【问题描述】:
我正在尝试将本地 Postgresql 数据库导入 Heroku,我正在按照以下步骤操作 https://devcenter.heroku.com/articles/heroku-postgres-import-export#import-to-heroku-postgres。
我成功了:
- 创建了一个转储
- 已将其上传到 S3 存储桶
- 从 AWS CLI 创建一个签名链接
- 运行命令
heroku pg:backups:restore '<SIGNED URL>' DATABASE_URL(使用我的应用名称添加-a)。
恢复备份的过程正确启动,但随后退出并显示以下代码:
! An error occurred and the backup did not finish.
!
! Could not initialize transfer
!
! Run heroku pg:backups:info r011 for more details.
打开日志显示:
Database: BACKUP
Finished at: 2020-01-09 18:49:30 +0000
Status: Failed
Type: Manual
Backup Size: 0.00B (0% compression)
=== Backup Logs
2020-01-09 18:49:30 +0000 Could not initialize transfer
我试过了:
- 重新上传文件到bucket,
- 生成新的签名链接,
- 将应用程序置于维护模式,
- 我在我的 IAM 管理服务中创建了一个具有完全 S3 访问权限的用户,并将凭据保存在应用程序环境中,地址为 https://devcenter.heroku.com/articles/s3
不知道从这里去哪里,但希望能提供任何帮助。 (我正在制定业余爱好计划,因此我无法向 Heroku 寻求帮助)
编辑:我也试过了:
- 删除并重新创建 S3 存储桶
- 安装 AWS CLI 版本 1 以查看预签名链接的结构是否发生了变化
编辑 2:由于找不到解决方案,我暂时选择将主机完全迁移到 AWS 上
【问题讨论】:
-
请说明您如何使用
pg_dump命令 -
来自powershell:cmd /c "pg_dump -Fc --no-acl --no-owner -h localhost -U myuser mydb > mydb.dump"
-
Could not initialize transfer表示heroku无法下载。您是否为heroku设置了s3凭据? devcenter.heroku.com/articles/s3 -
是的,我有文章中显示的相同名称,我需要在其他地方使用它们吗?另外:我的印象是在创建它的过程中给出了预签名的链接授权,并且它不依赖于接收者拥有凭据,这是错误的吗?
-
可能有误,默认策略是“拒绝”所有静态访问。您可以只允许静态请求并打开您的存储桶以进行测试吗?创建一个开放的政策,再试一次,学习,不要忘记关闭政策。
标签: postgresql amazon-web-services heroku amazon-s3 heroku-postgres