我们有一个非常老的Linux系统运行Postgre sql 8.3。系统包含一个带有Postgis功能的数据库,但是,从pgAdmin III界面看,似乎没有启用“Extensions”。该服务器机器将过时,我们想转移到另一个Postgre sql服务器。
目前我们有一台Windows服务器Postgre SQL 9.3。我已经能够创建一个自定义.backup文件,并且能够使用以下方法导入大多数表和数据:http://trac.osgeo.org/postgis/wiki/UsersWikiWinUpgrade但是我的error.txt文件说:
function makepoint(double precision, double precision) does not exist
我认为这个函数是liblwgeom.dll
的一部分,我无法在任何地方找到DLL文件!我已经完成了大部分的zip下载:http://download.osgeo.org/postgis/windows/但没有运气。
原始数据库确实具有'makepoint'功能,但由于缺少DLL,它在目标Windows系统上不起作用。
我有什么选择?
可能需要采用不同的方法。请注意,根据http://www.postgis.org/documentation/manual-svn/postgis_installation.html#hard_upgrade我在Linux环境中使用.backup文件尝试了'硬升级'但是出现了一些错误,例如'无效标题',可能是由于pg恢复工具太新了;在Linux中,我的进步远远低于Windows中的进展。
CREATE OR REPLACE FUNCTION makepoint(double precision, double precision)
RETURNS geometry AS '$libdir/liblwgeom', 'LWGEOM_makepoint'
LANGUAGE c IMMUTABLE STRICT COST 1; ALTER FUNCTION makepoint(double precision, double precision) OWNER TO postgres;
编辑 这是一个Windows系统,因此建议的Mac OS建议无效。谢谢。
答案 0 :(得分:2)
回到PostGIS 1.2.3,功能使用ST_
前缀重命名,因此现代名称makepoint(float8, float8)
为st_makepoint(float8, float8)
。
您可以将使用它们的函数重命名为现代命名方案,但如果您有各种函数,触发函数等,这可能很难做到。
您还可以运行安装PostGIS时附带的legacy.sql
启用程序脚本,该脚本将重新启用旧功能,例如makepoint(float8, float8)
和其他许多功能。