PostGIS 不能与 psql 一起使用吗?

发布于 2024-11-29 02:49:07 字数 865 浏览 2 评论 0原文

我有一个 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),
                     ^

I have a sql script that creates several tables, a trigger, and a trigger function. All the commands work in pgAdmin when I execute them in the "Query" section. My goal is to put all these commands in a script so that I can set up the database on any machine relatively easily and quickly. When I attempt to run the script through psql, however, I get the following errors on all of the lines where I attempt to use Geography types:

ERROR:  type "geography" does not exist

It doesn't make sense because I can copy and paste the exact same queries into the query editor of pgAdmin and it works just fine. Does psql not support PostGIS? Or maybe just not the most recent version of PostGIS, 1.5.3, which includes the new Geography types? Is there something I can do to fix this?

EDIT

An example of one of my queries:

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 message:

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

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

最佳男配角 2024-12-06 02:49:07

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

You can try to use the same psql that pgAdmin uses by pointing directly at it. On Mac OS X it is in pgAdmin3.app/Contents/SharedSupport/psql. However, what really matters is the version of the server (not the version of the client). You should verify that you are connecting to the same database in both cases.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文