,所以我的一个同事要离开我们的公司,他使用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...
基本上,它指出类型的几何形状不存在。但是,当我用几何列创建一个表格时,在数据库的任何模式中,它都可以成功地工作。
所以我的问题本质上是:
当我创建一个带有几何列的表时,一切都起作用...但是,当pg_restore
创建一个带有几何列的表时,一切都会发生,就好像后gis扩展不存在。
这种问题的经验?
我可能会假设,在数据库中没有安装后gis扩展名,您正在尝试恢复转储。这就是为什么空间数据类型(尤其是几何形状)未被识别的原因。您可以尝试安装PostGIS和RETRY PG_RESTORE。
查看您是否已安装了Postgis
SELECT PostGIS_full_version();
如果未安装,您可以按照tostgis安装说明中的说明进行安装
如果已安装了tostgis,则需要确保扩展名在数据库中可用,如果不是,则可以使用:
来创建它。CREATE EXTENSION postgis;