【问题标题】:PostGIS upgrade 2.2.1 -> 2.5.0 Database Import ErrorsPostGIS 升级 2.2.1 -> 2.5.0 数据库导入错误
【发布时间】:2019-04-02 12:13:59
【问题描述】:

我正在将数据库从 PostGIS 2.2.1 移动到 2.5.0 (PG 9.6)。我 pg_dumped 旧数据库并使用 pg_restore 导入它。

一切似乎都很好,但我遇到了这两个错误。这是我需要担心的事情还是可以忽略它们?

pg_restore: creating AGGREGATE "public.accum(geometry)"
pg_restore: [archiver (db)] Error while PROCESSING TOC:
pg_restore: [archiver (db)] Error from TOC entry 4925; 1255 348862 AGGREGATE accum(geometry) aed
pg_restore: [archiver (db)] could not execute query: ERROR:  type "pgis_abs" does not exist
Command was: CREATE AGGREGATE accum(geometry) (
    SFUNC = public.pgis_geometry_accum_transfn,
    STYPE = pgis_abs,
    FINALFUNC = pgis_geometry_accum_finalfn
);

和..

pg_restore: creating AGGREGATE "public.makeline(geometry)"
pg_restore: [archiver (db)] Error from TOC entry 4927; 1255 348864 AGGREGATE makeline(geometry) aed
pg_restore: [archiver (db)] could not execute query: ERROR:  type "pgis_abs" does not exist
Command was: CREATE AGGREGATE makeline(geometry) (
    SFUNC = public.pgis_geometry_accum_transfn,
    STYPE = pgis_abs,
    FINALFUNC = pgis_geometry_makeline_finalfn
);

【问题讨论】:

    标签: postgresql postgis postgresql-9.6 geos postgis-installation


    【解决方案1】:

    显然,pgis_abs 列是一个虚拟列,as per this commit

    #4035,从聚合/收集例程中删除虚拟 pgis_abs 类型

    听起来您应该能够在执行升级之前删除pgis_abs

    披露:我为EnterpriseDB (EDB)工作

    【讨论】:

    • 我会为其他人添加此内容。需要使用 pg_restore,因为由于某种原因,postgis 数据没有作为有效的 sql 加载。
    【解决方案2】:

    我强烈建议您在恢复带有 postgis 扩展名的 pg_dumped 文件时使用“postgis_restore.pl”,而不是 pg_restore 命令本身。

    https://github.com/postgis/postgis/blob/svn-trunk/utils/postgis_restore.pl.in

    【讨论】:

      猜你喜欢
      • 2021-11-11
      • 2014-06-08
      • 1970-01-01
      • 2015-07-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-11-12
      • 2015-09-12
      相关资源
      最近更新 更多