我正在尝试我的第一次Heroku部署并遇到问题
heroku pg:backups:restore "https://s3.us-east-2.amazonaws.com/myusername/POSTGRESQL.dump"
DATABASE_URL --app MyAppName
我收到错误
! An error occurred and the backup did not finish.
!
! pg_restore: [archiver] did not find magic string in file header
! 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
!
! Run heroku pg:backups:info r006 for more details.
有时错误是:
Starting restore of https://s3.us-east-2.amazonaws.com/talXXXXXXXX to postgresql-XXXXXXXXX... done
Use Ctrl-C at any time to stop monitoring progress; the ba
Use heroku pg:backups to check progress.
Stop a running restore with heroku pg:backups:cancel.
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 publicl
!
! Run heroku pg:backups:info r015 for more details.
我已经从各种浏览器确认公众可以访问该网址,我可以下载该文件。我在Windows上推荐使用双引号,我做错了什么?
答案 0 :(得分:2)
最后,我无法知道如何导入Heroku,因为他们做广告可以在https://devcenter.heroku.com/articles/heroku-postgres-import-export#import
完成所以我使用了像DBeaver这样的数据库连接客户端,将我的数据库转储转换为SQL脚本并手动运行脚本以导入数据。
:(
答案 1 :(得分:1)
我遇到了同样的问题。原来这是我的转储文件的问题。我没有正确地压缩它。
--format=c
选择自定义作为格式输出(与-Fc
相同)。它默认压缩文件,但它不够,所以我也使用了--compress
标志。
此标志指示压缩级别;它从0(较轻)到9(较重)。
我使用了9,以防万一,我的命令就像那样
pg_dump --format=c --compress=9 --no-acl --no-owner -h THE_HOST -U YOUR_USER THE_DATABASE > YOUR_FILE.dump
它有效。
答案 2 :(得分:0)
我能够通过PgAdmin4创建备份,而不是通过Heroku官方教程中的console dump命令来实现这一点。
答案 3 :(得分:0)
我也只能通过 PgAdmin 来完成这项工作,这是 PgAdmin 中备份作业使用的命令行。 Windows 10 但 pg_dump 选项应该适用于任何操作系统。
C:\Program Files\PostgreSQL\13\bin\pg_dump.exe --file "mydump.dump" --host "localhost" --port "5432" --username "postgres" --no-password --verbose --format=c --blobs --compress "8" --no-owner --section=pre-data --section=data --section=post-data --no-privileges --no-tablespaces --no-unlogged-table-data --no-comments "mydatabase"
然后我将它上传到一个公共 Azure blob 文件并像这样恢复它:
heroku pg:backups:restore "https://redacted.blob.core.windows.net/piis2/mydump.dump" DATABASE_URL