Невозможно скопировать базу данных postgresql на новый сервер с ошибкой [нераспознанный параметр "row_security" ]

Я новичок в PostgreSQL. Я успешно создал базу данных, установил "philipyoung" -my ID как суперпользователя и воспользовался приведенной ниже командой, чтобы скопировать локальную базу данных на новый сервер в elephantsql.

pg_dump -C -h localhost -U localuser dbname | psql -h remotehost -U remoteuser dbname

а затем появляется ошибка ниже

SET
SET
SET
SET 
SET
ERROR: unrecognized configuration parameter "row_security"
ERROR: permission denied to create database
ERROR: role "philipyoung" does not exist
FATAL: no pg_hba.conf entry for host "xxx.xxx.xxx.xx", user "xxxx", database "xxxx", SSL on

любая помощь будет оценена

Ответ 1

Ошибка "row_security", вероятно, потому, что у вас более новая версия PostgreSQL локально, чем на удаленном конце. Это не проблема, если вы не используете эту функцию.

Ошибки "отказали в доступе" и "пользователь X не существует", почему они терпят неудачу. Вы пытаетесь восстановить базу данных как пользователь, у которого нет разрешения на создание базы данных на удаленном сервере. Затем он не может найти соответствующего пользователя, а затем вы не настроили этого пользователя для удаленного доступа.

Пользователи разделяются между базами данных и не копируются с ними.

Итак - вы хотите сделать что-то вроде:

  • Войдите в систему как "postgres" на удаленном сервере и "CREATE USER x..."
  • Восстановите базу данных как пользовательский "postgres" на удаленном сервере, и он должен иметь возможность установить право собственности на пользователя, которого вы хотите.

Если вы не хотите предоставлять удаленный доступ к своей базе данных, вам может понадобиться либо создать туннель ssh (много примеров в Интернете), либо дамп в файл (используйте "-Fc" для настраиваемого сжатого формата) и сначала скопируйте дамп на удаленный компьютер.

Если возможно, попробуйте запустить ту же версию PostgreSQL на обоих серверах. Это облегчает работу, если им нужно общаться.