Восстановление базы
Есть докер контейнер в котором крутиться 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