我有一个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),
^
答案 0 :(得分:1)
您可以通过直接指向它来尝试使用pgAdmin使用的相同psql。在Mac OS X上,它位于pgAdmin3.app/Contents/SharedSupport/psql中。但是,真正重要的是服务器的版本(不是客户端的版本)。在这两种情况下,您都应该验证是否连接到同一个数据库。