на сервер2.
Проблема в том что на сервере1 есть кастомный tablespace которого нет (и не должно быть) на сервере2, а схема базы, которая использует этот tablespace должна быть на сервере2 - только в дефолтном tablespace.
Думал решить через pg_dumpall (c ключами --schema-only --clean и | pg_restore -C > на сервере2)
Но всё равно ругается на отсутствие директории.
Как можно перенести схему всех баз и восстановить схему custom tablespace в default tablespace?
Выгрузи с опцией -Fp и в файлике убери ТП
Спасибо попробую. Может есть варианты, что бы руками в файл лезть не пришлось?
Создать заранее БД с нужной tablespace
Спасибо. Но я в своем сабже указал, что на сервере2 не должно быть кастомного tablespace
А сменить tablespace после restore тоже нельзя?
В таком случае его всё равно придется предварительно создавать (по другому пути, который есть на сервере2) и потом удалять. (это конечно тоже вариант, придется делать так, если иного способа не найду). В идеале в принцепе избавится от кастомного tablespace и перенести все его схемы баз в дефолтный
Сделать это изменение на сервере 1 заранее ?
Нельзя, так как это мастер и ему этот tablespace нужен. А сервер2 по сути тестовый.
Переносить не через dump, а через логическую репликацию?
Тоже отпадает, так как мне не нужны данные а только схемы
Обсуждают сегодня