Postgis安装:键入“几何”不存在

我正在试图用Postgis创build表。 我通过这个页面来做。 但是当我导入postgis.sql文件,我得到了很多错误:

ERROR: type "geometry" does not exist 

有谁知道我该如何解决?

我有同样的问题,但它通过运行下面的代码被修复

 CREATE EXTENSION postgis; 

详细,

  1. 打开pgAdmin
  2. select(点击)你的数据库
  3. 点击栏上的“SQL”图标
  4. 运行“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扩展来解决这个问题 – 不过我不确定这是否是最好的办法。 我所知道的是它允许我恢复表格。