Как восстановить дамп postgres - PullRequest
0 голосов
/ 22 октября 2018

наши разработчики отправили нам файл дампа из postgresql (file.sql), и мы не знаем, как его восстановить, мы уже попробовали

psql -U <username> -d <dbname> -1 -f <filename>.sql

и получили ошибку «ошибка суперпользователя»аутентифицировать (по паролю) что это значит?я должен войти в суперпользователя моего ноутбука?Или это пользователь БД?

Ответы [ 2 ]

0 голосов
/ 22 октября 2018

pg_dump не создает дамп пользователей, но делает их разрешения.Если «суперпользователь» используется как владелец какого-либо объекта, то сначала вам нужно создать этого пользователя в вашем экземпляре.Так как вы используете -1, это может привести к сбою при добавлении разрешений для несуществующего пользователя.Вы можете попробовать psql -h <dbhost> -U <username> -W -d <dbname> < filename.sql, который будет запускать каждый оператор в дампе и продолжит работу, даже если произойдет ошибка при настройке разрешения.

Примечание: все объекты теперь будут принадлежать пользователю, к которому вы подключены.

0 голосов
/ 22 октября 2018

Вы можете использовать следующие строки:

PGPASSWORD=password;

pg_restore --host "hostname" --port "port" --username "postgres" --no-password --verbose --dbname "dbname"  --schema "schema" "dump_filename";

, где "hostname" - это имя хоста сервера postgresql (localhost), "port" - это порт сервера прослушивания postgresql (5432), "postgres""это имя пользователя, имя базы данных" dbname "

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...