Postgis安装:键入“几何”不存在
我正在试图用Postgis创build表。 我通过这个页面来做。 但是当我导入postgis.sql文件,我得到了很多错误:
ERROR: type "geometry" does not exist
有谁知道我该如何解决?
我有同样的问题,但它通过运行下面的代码被修复
CREATE EXTENSION postgis;
详细,
- 打开pgAdmin
- select(点击)你的数据库
- 点击栏上的“SQL”图标
- 运行“CREATE EXTENSION postgis;” 码
要让psql停止第一个错误,请使用-v ON_ERROR_STOP=1
( 默认情况下closures ,这就是为什么您会看到很多错误)。 例如:
psql -U postgres -d postgis -v ON_ERROR_STOP=1 -f postgis.sql
实际的错误就像“无法加载库X”,这可能会根据您的情况而有所不同。 作为一个猜测,在安装sql脚本之前先试试这个命令:
ldconfig
(您可能需要根据您的系统使用sudo
前缀)。 该命令更新所有系统库(如GEOS)的path。
你可以从terminal做到这一点:
psql mydatabasename -c "CREATE EXTENSION postgis";
如果Postgis-Extension被加载,那么你的SQL可能找不到几何types,因为缺less公共模式的searchpath。
尝试
SET search_path = …,public;
在你的script的第一行。 (用其他所需的searchpathreplace…)
您必须在数据库上启用扩展。
psql my_database -c "CREATE EXTENSION postgis;"
要么…
cursor.execute('create extension postgis')
在你的python程序中,使用psycopg2中的当前游标。
这里的答案可以解决你的问题,但是如果你已经在数据库中启用了postgis,那么问题可能是你试图将一个postgis表(带有几何列)复原到一个模式,而不是你的postgis扩展被启用的地方。 在pgAdmin中,您可以单击postgis扩展名并查看指定了哪个模式。 如果您试图将具有几何列的表复原到不同的模式中,则可能会出现此错误。
我通过改变我的postgis扩展来解决这个问题 – 不过我不确定这是否是最好的办法。 我所知道的是它允许我恢复表格。