Восстановление базы

Есть докер контейнер в котором крутиться postgresql. Пытаюсь восстановить дамп базы данных командой:

sudo cat /..dir../my.dump | sudo docker exec -i postgres_1 pg_restore -c -U u_name -d db_name 

Сначала ругался, что нет пользователя u_name и таблицы db_name. Все это создал, но теперь ругается:

pg_restore: [archiver (db)] could not execute query: ERROR:  role "postgres" does not exist

Несколько таких ошибок с разными ролями.


Ответы (1 шт):

Автор решения: Мелкий

Пользователи и роли в postgresql глобальны между базами на одном экземпляре postgresql, а потому не переносятся pg_dump'ом, так задумано.

Создайте необходимых пользователей перед восстановлением базы. Либо используйте параметр pg_restore --no-acl, при котором права доступа к объектам восстанавливаться не будут.

Если же вам нужно перенести весь экземпляр - вам нужен pg_dumpall

→ Ссылка