恢复 PostGIS 数据库时出错:"type geometry does not exist"



,所以我的一个同事要离开我们的公司,他使用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;

相关内容

  • 没有找到相关文章

最新更新