gpt4 book ai didi

postgresql - Heroku:从 S3 导入失败

转载 作者:行者123 更新时间:2023-12-03 23:09:25 24 4
gpt4 key购买 nike

我正在尝试将本地 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

    我试过了:
  • 重新上传文件到存储桶,
  • 生成新的签名链接,
  • 将应用程序置于维护模式,
  • 我在我的 IAM 管理服务中创建了一个具有完全 S3 访问权限的用户,并将凭证保存在应用程序环境中,从 https://devcenter.heroku.com/articles/s3 开始

  • 不知道从这里去哪里,但希望得到任何帮助。 (我在业余计划中,因此我无法向 Heroku 寻求帮助)

    编辑:我也试过:
  • 删除并重新创建 S3 存储桶
  • 安装 AWS CLI 的第 1 版以查看预签名链接的结构是否偶然发生了变化

  • 编辑 2:由于我找不到解决方案,我暂时选择完全在 AWS 上迁移托管

    最佳答案

    确保您计算机上存储在 ~/.aws/ 中的凭据。默认值设置为您为 heroku 配置创建的凭据。然后还要确保使用这些凭据和配置创建签名的 url。我必须将我的默认凭据设置为我放入 heroku 配置中的凭据。然后我还必须在 ~/.aws/config 中设置我的默认区域以匹配存储桶位置。应该在那之后工作。
    如果您使用的是 mac 或 linux,这里有一些说明。
    对不起 Windows 人。我会假设它是类似的。

  • 在 AWS 上的 IAM 中创建新的访问 ID 和 key
  • 设置 heroku 配置以使用这些凭据 heroku config:set AWS_ACCESS_KEY_ID=xxx AWS_SECRET_ACCESS_KEY=yyy
  • 可选(您可能也必须在 heroku 配置中设置存储桶名称)

  • 在您的机器上,将您刚刚创建的凭据设置为 ~/.aws/credentials 中的默认值。
  • 在您的机器上设置与您的存储桶对应的默认区域 ~/.aws/config
  • 创建签名 URL aws s3 presign s3://your-bucket-address/your-object
  • 运行恢复 heroku pg:backups:restore '<SIGNED URL>' DATABASE_URL
  • 关于postgresql - Heroku:从 S3 导入失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59670645/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com