我有一个postgres 9.1和postgis 1.5的数据库备份。许多数据库是使用支持空间的数据库构建的,创建时使用:
创建db spacial psql-d spacial-f postgis.sql psql-d spacial-f spatial_ref_sys.sql psql-d spacial-f postgis_comments.sql
现在我有一个Postgres9.3和postgis 2.1。所有空间数据库未正确还原,因为我的空间数据库(使用此新版本创建)仅使用两个表(使用旧版本创建)中的一个创建。
有人知道怎么回事吗?谢谢。
我已经采取了我需要的步骤,至少我认为我已经做到了。运行后:SELECT postgis_full_version();我得到了这个结果:"POSTGIS="2.1.2 r12389" GEOS="3.3.3-CAPI-1.7.4" PROJ="Rel. 4.7.1, 23 September 2009" LIBXML="2.9.1" LIBJSON="UNKNOWN""
由于POSTGIS 2.1.2没有包含在提供的链接中,我想我应该只运行脚本postgisu upgrade_21_minor.sql,因为我没有安装拓扑。但有几张桌子根本没有进口。在导入过程中,我收到了一些消息:“geometry”类型未定义。
有什么新主意吗?

最佳答案

遵循hard upgrade instructions in the manual。简而言之,这些步骤是:
将旧数据库转储到文件
在空间上启用一个新的空数据库(有几种不同的方法可以做到这一点)
使用新版本PostGIS附带的特殊实用程序postgis_restore.pl将旧格式转换为新格式。

07-27 19:11