2

我有一个创建多个表、一个触发器和一个触发器函数的 sql 脚本。当我在“查询”部分执行它们时,所有命令都在 pgAdmin 中工作。我的目标是将所有这些命令放在一个脚本中,这样我就可以相对容易和快速地在任何机器上设置数据库。但是,当我尝试通过 psql 运行脚本时,我在尝试使用Geography类型的所有行上都收到以下错误:

ERROR:  type "geography" does not exist

这没有任何意义,因为我可以将完全相同的查询复制并粘贴到 pgAdmin 的查询编辑器中,并且效果很好。psql 不支持 PostGIS 吗?或者可能只是不是最新版本的 PostGIS,1.5.3,其中包括新Geography类型?我能做些什么来解决这个问题吗?

编辑

我的一个查询示例:

CREATE TABLE source_imagery (
    id SERIAL PRIMARY KEY,
    image_type VARCHAR(1000),
    image_path VARCHAR(1000),
    boundary GEOGRAPHY(POLYGON, 4326),
    image_time TIMESTAMP,
    catalog_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);

错误信息:

ERROR:  type "geography" does not exist
LINE 5:     boundary GEOGRAPHY(POLYGON, 4326),
                     ^
4

1 回答 1

1

您可以通过直接指向它来尝试使用 pgAdmin 使用的相同 psql。在 Mac OS X 上,它位于 pgAdmin3.app/Contents/SharedSupport/psql 中。然而,真正重要的是服务器的版本(而不是客户端的版本)。您应该验证在这两种情况下都连接到同一个数据库。

于 2011-08-12T18:37:02.373 回答