【问题标题】:How can I restore a database dump from an old version of PostGIS on a system with a newer version?如何在具有较新版本的系统上从旧版本的 PostGIS 恢复数据库转储?
【发布时间】:2016-08-15 14:22:11
【问题描述】:

我有一个来自 PostgreSQL 9.1 + PostGIS 1.5.3 的 PostGIS 数据库的数据库转储,我正在尝试在使用 PostgreSQL 9.5 + PostGIS 2.2.1 的系统上恢复它。

创建新数据库后,我将其放入 PostGIS 数据库:

CREATE EXTENSION postgis;
CREATE EXTENSION postgis_topology;

但是,在恢复到这个新数据库时,我收到以下错误(以及许多其他错误):

ERROR:  function ndims(geometry) does not exist
HINT:  No function matches the given name and argument types. You might need to add explicit type casts.

我可以做些什么来导入旧的数据库转储?

【问题讨论】:

    标签: postgresql postgis


    【解决方案1】:

    PostGIS 似乎与一些脚本捆绑在一起,以帮助从早期版本的数据库转储中恢复。因此,在创建 PostGIS 表和函数之后:

    CREATE EXTENSION postgis;
    CREATE EXTENSION postgis_topology;
    

    你可以这样做:

    psql mydatabase < /usr/share/postgresql/9.5/contrib/postgis-2.2/legacy_minimal.sql
    

    然后数据库恢复工作没有ndims 错误 - 函数等还有许多其他已经定义的错误,但这些似乎可以忽略不计。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-04-24
      • 2022-07-07
      • 1970-01-01
      相关资源
      最近更新 更多