Heroku数据库部署

Heroku数据库部署,heroku,Heroku,我正在尝试我的第一个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_res

我正在尝试我的第一个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.

我已经从不同的浏览器中确认,公众可以访问该url,并且我可以下载该文件。我在URL周围使用了双引号,这是为Windows推荐的,我做错了什么?

最后,我无法解决如何导入Heroku,因为他们可以在

因此,我使用了一个数据库连接客户端,比如DBeaver,将我的数据库转储转换成一个SQL脚本,并手动运行该脚本来导入数据


:(

我也遇到了同样的问题。原来是我的转储文件有问题。我没有正确压缩它

--format=c
选择custom作为格式输出(与
-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

它成功了。

我可以通过PgAdmin 4创建备份,而不是通过Heroku官方教程中的控制台转储命令来实现这一点。

我也只能通过PgAdmin实现这一点,这是PgAdmin中备份作业使用的命令行。Windows 10但是pgu转储选项应该可以在任何操作系统上实现

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

如果我将URL修改为无效的内容,则会出现相同的错误。因此,它很可能没有正确解析URL,因为公共可访问性是一个问题。我可以更具体地说明如何转换转储文件并运行脚本吗?我也面临同样的问题。我只是想通过first creatin确认这一点对我有效g转储文件使用:
pg_dump--format=c--compress=9-U postgres myapp_production>pg_15_aug_18.sql
然后使用
heroku pg:backups:restore“mysite.org/uploads/tmp/pg_15_aug__18.sql”数据库的URL进行恢复。这也只是确认这对我有效,但还需要使用未签名(完全公开)的URL而不是签名的URL。Heroku指示使用签名的S3 URL,但我无法使其正常工作。感谢您的回答。您在pgadmin4备份中使用了哪些选项?我已尝试了CLI和该CLI,但无法使其正常工作。很抱歉-我不记得了,除了大部分默认设置之外。