【问题标题】:Does PostGIS not work with psql?PostGIS 不能与 psql 一起使用吗?
【发布时间】:2011-10-26 01:22:49
【问题描述】:

我有一个创建多个表、一个触发器和一个触发器函数的 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),
                     ^

【问题讨论】:

    标签: postgresql postgis psql


    【解决方案1】:

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

    【讨论】:

    • 啊,你是对的。我的问题是我的脚本正在创建数据库,然后尝试创建表。我不得不将脚本分成两部分。第一个脚本通过postgres 数据库连接到psql,第二个脚本通过新创建的数据库连接到psql。这解决了我的问题。感谢您的帮助!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-01-24
    • 2020-10-03
    • 1970-01-01
    • 2021-02-27
    • 2015-11-22
    • 2018-01-28
    相关资源
    最近更新 更多