Это - очень срочная ситуация.
У нас есть пост-ГРЭС 9,4 баз данных, установленных на машине CentOs.
Мы пытаемся взять резервное копирование от базы данных 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, кажется, пропускает данные из столбцов, которые имеют тип двоичного файла (эти столбцы содержат изображения в двоичном формате).
Когда мы восстанавливаем это резервное копирование на базу данных по использованию CentOS после команды, все изображения из изображения т.е. двоичных столбцов типа отсутствуют:
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 |
Больше информации: heroku база данных пост-ГРЭС, из которой мы создаем резервное копирование, является PostgreSQL 9.2.6. Тот, к которому мы восстанавливаем, является PostgreSQL 9.4.
Наконец-то мы смогли восстановить резервную копию. Мы перепробовали так много всего, что я не уверен, что это за исправление, но мы пришли к выводу, что проблема заключалась в настройке bytea_output в postgresql.conf. Мы думаем, что Heroku использовал значение escape, в то время как наш сервер базы данных использовал шестнадцатеричный код, и это вызвало проблему.