这是一个非常紧迫的情况。
我们在CentOs机器上安装了postgres 9.4数据库。
我们正在尝试从Heroku Postgres数据库中进行备份,并将其恢复到CentOs机器上的数据库。
我们正在使用的命令: pg_dump -Fc -h ec2-99-99-99-99.compute-1.amazonaws.com -p 5762 -U xyz -d dbname > file.dump
由pg_dump创build的转储似乎缺less具有二进制types的列(这些列包含二进制格式的图像)中的数据。
当我们使用以下命令将此备份恢复到CentOS上的数据库时,图像中的所有图像即二进制types列都将丢失:
pg_restore -d onlinedb ~/file.dump
我们不得不在早上去活,并且完全受到这个意外的问题的困扰。
\d attachments
输出(附件是问题表)命令:
Table "public.attachments" Column | Type | Modifiers ------------------+------------------------+----------- id | integer | not null configuration_id | integer | style | character varying(255) | file_contents | bytea |
更多信息:我们正在创build备份的heroku postgres数据库是PostgreSQL 9.2.6。 我们正在恢复的是PostgreSQL 9.4。
我们终于能够恢复备份。 我们尝试了很多东西,我不确定修复是什么,但是我们的结论是,问题是postgresql.conf中的bytea_output设置。 我们认为Heroku使用'escape'的值,而我们的数据库服务器使用'hex',这就引起了这个问题。