PostgreSQL 9.6: Почему эта команда pg_restore работает для меня, а не для моего коллеги? - PullRequest
0 голосов
/ 28 апреля 2020

У нас на борту совершенно новый кодер. При этом нам бы хотелось, чтобы у него была локальная версия нашей PostgreSQL базы данных, с которой можно было бы возиться.

Вывод производственной базы данных следующим образом работал без проблем:

pg_dump -U username -W -F c dbname > backups/2020_04_24_18_49.db

Восстановление в тестовой БД, созданной на моем локальном компьютере (под управлением Ubuntu 18.04), без проблем работало следующим образом:

pg_restore -d dbname 2020_04_24_18_49.db

Выполнение той же команды на моем коллеге Локальный (работает MacOS, не уверен в версии) не работает без проблем. Много, много ошибок. Первый из них:

COPY failed for table "TableName": ERROR: new row for relation "TableName" violates check constraint "whitespaceRules_TableName_columnName"

Я убедился, что у нас установлена ​​та же версия PostgreSQL. Я убедился, что существуют правильные роли. Я пробовал сбрасывать разные форматы. Я перепробовал много вещей. Ни один не сработал.

Пожалуйста, помогите?

(Следует отметить, что это не единственный коллега, работающий с MacOS, поэтому так не должно быть. Я думаю)

Редактировать: Как указано в комментарии, вот определение контрольного ограничения:

CHECK (("emailAddress" = regexp_replace("emailAddress", '\s+'::text, ''::text, 'g'::text)))

1 Ответ

0 голосов
/ 29 апреля 2020

Хорошо, поэтому с помощью pg_dump с флагом --create получилось. Я предполагаю, что любая конфигурация / encoding / et c несоответствия, на которые @Borgi и @Laurenz Albe указывали в своих комментариях, были обработаны с помощью создания БД как части процесса восстановления.

В любом случае, всем большое спасибо за помощь!

...