故障排除

PostGIS阅读器中的表列表

如果表格列表在PostGIS阅读器参数框不显示您的表,请尝试以下操作:

  1. 键入表名本身。如果这样做有效,则表可能未在PostGIS元数据表中正确注册,或者可能没有几何图形列。如果这不起作用,请尝试下面的步骤2或3。
  2. 键入带有架构前缀的名称,即public.mytable。如果这样做有效,则可能意味着您可能没有在“设置”框中指定要搜索的正确架构。如果这不起作用,请尝试步骤3。
  3. 如果上述两个步骤都不起作用,则该表可能不存在。您可以通过查看PostgreSQL Reader参数框提供的表列表来验证这一点。

如果PostGIS Reader Parameters框中的表列表列出了您的表,但您在运行转换时收到一条错误消息,表示该表不存在,则可能是在未更新PostGIS元数据表的情况下删除了PostgreSQL表。孤立元数据可能继续存在于PostGIS元数据表中。建议更正geometry列的PostGIS元数据表,以仅匹配现有的PostgreSQL表。

连接到PostgreSQL/PostGIS数据库

在尝试连接到PostGIS/PostgreSQL数据库时,有时会出现问题。这几乎总是由于用户环境中的错误配置造成的。

以下建议通常有助于发现和克服此类问题。

  • 确保可以使用psql或pgAdmin使用主机、端口、数据库、用户名和密码连接到数据库。有关正确的安全性和连接信息以及psql实用程序的用法,请参阅PostgreSQL文档。
  • 如果您试图列出这些表,但什么也没有发生,请检查日志文件。可能存在未生成对话框的潜在错误。通常这意味着参数不存在或权限不足以访问请求的资源。
  • 在大多数情况下,POSTGIS_DATABASE指令应保留空白值,POSTGIS_DATASET指令包含POSTGIS数据库的名称。
  • 使用UNIX操作系统时,可以使用环境变量PGHOST、PGPORT、PGDATABASE、PGUSER和PGPASSWORD指定PostgreSQL连接参数。
  • 如果PostGIS reader输入设置框中的表列表未显示您的表,请尝试键入带有架构前缀的名称(例如public.mytable)。如果这样做有效,则表可能未在PostGIS元数据表中正确注册,或者可能没有几何图形列。
  • 如果PostGIS reader输入设置框中的表列表列出了您的表,但您在运行转换时收到一条错误消息,表示该表不存在,则可能是在未更新PostGIS元数据表的情况下删除了PostgreSQL表。孤立元数据可能继续存在于PostGIS元数据表中。建议更正geometry列的PostGIS元数据表,以仅匹配现有的PostgreSQL表。

连接到其他用户架构中的PostgreSQL/PostGIS表

FME使用Postgres搜索路径来确定要在表列表中显示哪些模式的表。要为会话设置用户的搜索路径,请执行以下操作:

将搜索路径设置为“$user”,公共;

将搜索路径设置为“$user”、public、schema2、schema3;

要为所有未来会话设置用户的搜索路径,请执行以下操作:

更改用户将搜索路径设置为“$USER”,公共;

ALTER USER将搜索路径设置为“$USER”,public,schema2,schema3;

要查看当前搜索路径,请执行以下操作:

显示搜索路径;