【问题标题】:ERROR: type modifier is not allowed for type "geometry" in PostGIS 2.1错误:PostGIS 2.1 中的“几何”类型不允许使用类型修饰符
【发布时间】:2016-05-07 21:53:57
【问题描述】:

在 Debian Wheezy 上,我安装了 postgresql 9.1,并从标准 apt repo 安装了 postGIS 1.5。但是这没有几何类型,所以我添加了 postgresql apt repo 并安装了 postgis 2.1:

sudo apt-get install postgis-2.1

与postgis相关的最后一个输出是:

Setting up postgresql-9.4-postgis-2.2 (2.2.1+dfsg-2.pgdg70+1)

一切看起来都很好,但是当我运行以下 sql 时,出现与 postGIS 1.5 结果相同的错误:

ALTER TABLE bolls ADD COLUMN location geometry(POINT,-1);

编辑: 在尼克·巴恩斯 (Nick Barnes) 在下面的评论中给予指导后,我尝试了 ALTER EXTENSION postgis update to "2.1"; 并得到了

ERROR:  extension "postgis" does not exist

如果我尝试CREATE EXTENSION postgis,它会告诉我 PostGIS 已经安装。

【问题讨论】:

  • 你运行ALTER EXTENSION ... UPDATE了吗?安装软件包后新版本可用,但不会修改您的数据库。
  • 相应更新问题
  • 显然 1.5->2.0+ 升级不可能通过简单的扩展更新;需要转储/恢复数据库(请参阅here)。不过,这不是我所期望的错误消息,因此可能还有其他问题...
  • 顺便说一句,只要您正在对数据库进行转储/恢复,您可能需要考虑从 Postgres 9.1 升级(将于 9 月 EOL)。

标签: postgresql debian postgis postgresql-9.1


【解决方案1】:

要从版本 1.5 升级到 2.1,请关注 hard upgrade instructions in the manual。简而言之,这些步骤是:

  1. 将旧数据库转储到文件中
  2. 在空间上启用一个新的空数据库(您已经使用 CREATE EXTENSION postgis 完成了此操作)
  3. 使用新版 PostGIS 附带的特殊实用程序 postgis_restore.pl 将旧格式转换为新格式。

geometry(POINT,-1) 也是无效的。如果您没有 SRID,则只需 geometry(POINT)

【讨论】:

    猜你喜欢
    • 2016-04-27
    • 1970-01-01
    • 1970-01-01
    • 2019-05-11
    • 1970-01-01
    • 2023-01-11
    • 1970-01-01
    • 1970-01-01
    • 2015-01-18
    相关资源
    最近更新 更多