Python 无法还原heroku上的postgres转储
我正在使用此命令在本地创建转储Python 无法还原heroku上的postgres转储,python,django,postgresql,heroku,django-rest-framework,Python,Django,Postgresql,Heroku,Django Rest Framework,我正在使用此命令在本地创建转储 PGPASSWORD=admin pg_dump-h 127.0.0.1-p 5432-U postgres--无所有者--无acl-f数据库。dump和my已成功创建 然后将此转储文件上载到dropbox,并使用此链接将其公开http://www.dropbox.com/s/rsqeiuqzusejz5x/database.dump?dl=1请注意,我已将https更改为http,将dl=0更改为dl=1(dl=1可下载) 然后在我的终端上运行这个命令herok
PGPASSWORD=admin pg_dump-h 127.0.0.1-p 5432-U postgres--无所有者--无acl-f数据库。dump
和my已成功创建
然后将此转储文件上载到dropbox,并使用此链接将其公开http://www.dropbox.com/s/rsqeiuqzusejz5x/database.dump?dl=1
请注意,我已将https
更改为http
,将dl=0
更改为dl=1
(dl=1可下载)
然后在我的终端上运行这个命令heroku pg:backups:restore“http://www.dropbox.com/s/38prh2y7pdwhqqj/database.dump?dl=1“--确认宁静安克雷奇-39635
但我得到了这个错误
! An error occurred and the backup did not finish.
!
! pg_restore: error: did not find magic string in file header
! waiting for restore to complete
! pg_restore finished with errors
! waiting for download to complete
! download finished successfully
!
! Run heroku pg:backups:info r010 for more details.
我尝试了所有的官方文档和各种答案,但似乎没有任何效果。尝试使用-Fc选项运行pg_dump(自定义格式) )如以下文件所述:
通过进一步研究,我发现在恢复转储文件时,
pg_restore
命令要求在创建转储文件时必须提到某种格式。这就是出现错误的原因。pg_restore:error:在文件头中找不到神奇字符串。
pg_dump-h-p-U--format=c>daman.dump
运行此命令后,系统将提示您输入用户的密码
注意上面命令中的--format=c
。这将创建一个转储文件,其格式可以通过pg_restore
还原,而且我应该指出,与未使用--format=c
的情况不同,以这种方式创建的转储文件对于文本编辑器(如记事本或vscode)是不可读的
有关更多详细信息,请参阅文档否,这也没有帮助。但是我已经找到了这个问题的根本原因和解决方案,请注意-Fc与--format=c完全相同。看,是的,我同意,但出于某种奇怪的原因,
-Fc
似乎不起作用。我试过很多方法,但都不管用
pg_dump -Fc --no-acl --no-owner -h localhost -U myuser mydb > mydb.dump