Мой коллега покидает нашу компанию и использовал pg_dump (косвенно, через pgAdmin III) для сброса своей локальной базы данных. Он поместил файл .backup на сервер компании, и теперь я использую pg_restor (косвенно, через pgAdmin III) для восстановления его таблиц в базе данных компании.
Но я заметил, что были восстановлены только таблицы без геометрии.
Присмотревшись к журналам, я заметил, что ошибка была следующей (извините за французский язык):
pg_restore: [programme d'archivage (db)] could not execute query: ERREUR: le type « geometry » n'existe pas
LIGNE 3 : geom geometry(Point,5699),
^
La commande était : CREATE TABLE cbt_poste (
id integer NOT NULL,
geom geometry(Point,5699),
nom_du_pos character varying(32),
d...
По сути, он утверждает, что типа Geometry не существует. Но когда я создаю таблицу со столбцом Geometry в любой схеме базы данных, она работает успешно.
Итак, моя проблема по сути:
Когда я создаю таблицу со столбцом Geometry, все работает ... Но когда pg_restore
создает таблицу со столбцом Geometry, все происходит так, как будто расширения PostGIS никогда не существовало.
Есть ли опыт в подобной проблеме?
search_path
проблема - вы использовали ту же версиюpg_restore
, что и дляpg_dump
? Некоторое время назад были исправленыsearch_path
ошибки, изменившие поведение в этой области. - person Laurenz Albe   schedule 20.12.2018