postgresql - 将 postgis 备份从 1.5 恢复到 2.1.2

标签 postgresql postgis

我有一个 postgres 9.1 和 postgis 1.5 的数据库备份。许多数据库都是使用支持空间的数据库构建的,创建时使用:

createdb spacial psql -d spacial -f postgis.sql psql -d spacial -f spatial_ref_sys.sql psql -d spacial -f postgis_comments.sql

现在我安装了 postgres 9.3 和 postgis 2.1。所有空间数据库均未正确恢复,因为我的空间数据库(使用此新版本创建)仅使用两个表(使用旧版本创建)之一创建。

有人知道这是怎么回事吗?谢谢。

我已经完成了所需的步骤,至少我认为我已经完成了。运行后:SELECT postgis_full_version(); 我得到了这个结果:"POSTGIS="2.1.2 r12389"GEOS="3.3.3-CAPI-1.7.4"PROJ="相对。 4.7.1,2009 年 9 月 23 日"LIBXML="2.9.1"LIBJSON="UNKNOWN""

由于所提供的链接中没有涵盖 POSTGIS 2.1.2,我想我应该只运行脚本 postgis_upgrade_21_minor.sql,因为我没有安装拓扑。但是有几张表根本没有导入。在导入过程中,我收到了一些消息:类型“geometry”未定义。

有什么新想法吗?

最佳答案

关注hard upgrade instructions in the manual .简而言之,这些步骤是:

  1. 将旧数据库转储到文件
  2. 在空间上启用一个新的空数据库(有几种不同的方法可以做到这一点)
  3. 使用新版 PostGIS 附带的特殊实用程序 postgis_restore.pl 将旧格式转换为新格式。

关于postgresql - 将 postgis 备份从 1.5 恢复到 2.1.2,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23279022/

相关文章:

PHP、geojson 和 openlayers

mysql - 通过 MySQL 连接 Thinking_sphinx

ruby-on-rails - PostGIS ActiveRecord 适配器不起作用

java - JPA 中的地理空间支持

postgresql - 如何在postGIS中找到重叠点

javascript - 将 PostGIS 点对象转换为 geoJSON 以进行制图

java - 使用 aws-secretsmanager-jdbc 和 Node.js 连接到 RDS?

postgresql - 使用 UNION ALL 从多个表中获取行或在生产中使用一个表?

javascript - 仅使用密码对用户进行身份验证

python - 配置Geodjango时,gdal 1.10和python3.3在Windows 7上不兼容