@nikweter
Системный администратор

Как разобраться с порядком восстановления таблиц?

Всю жизнь дампил базы pg_dump, а заливал psql base < file
Но тут столкнулся со сложной базой, где в таблицах ключи указывают на другие таблицы. В итоге при восстановлении получаю кучу ошибок вида relation "name" does not exist
И что-то я пока не понимаю как такое решить...
В документации к старым версиям указаны опции для управления порядком восстановления, но в новых ничего подобного нет. Неужели дампить потаблично и восстанавливать также? Абсурд!
Как быть?
  • Вопрос задан
  • 182 просмотра
Решения вопроса 1
@nikweter Автор вопроса
Системный администратор
В общем, по непонятной причине не соблюдался порядок восстановления таблиц. В текущую таблицу восстанавливались ключи, ссылающиеся на еще не развернутую. Теоретически все работало, но кому понравятся горы ошибок?
Решилось раздельным восстановлением сначала схемы базы (ключ pg_restore -s), а потом только данных (pg_restore -a). Ну и разумеется --disable-triggers
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
ky0
@ky0
Миллиардер, филантроп, патологический лгун
Дампьте с ключом -Fc, а восстанавливайте pg_restore. 2017 год на дворе, бинарные дампы, многопоточное восстановление, вот это всё...
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы