English

Problem: [PostgreSQL] Metadata service returns an error message stating the current schema and users schema are not the same

Description

When creating the metadata tables by starting the Metadata Windows service, an error message is returned stating that the current schema is not the same as the users schema.

Cause

PostgreSQL 8.3 follows a search path through a determined list of schemas. The search path is the path the system takes to find an authenticated user’s database objects to which they have access. The first matching schema found is selected as the intended schema. If there is no match, an error is returned, even if matching table names exist in other schemas. Once SDE is installed, the default search path is set to:

Code:
search_path
--------------
"$user",public,sde

The first element specifies that the schema with the same name as the current user would be searched. If no entry exists, the element is ignored and the tables are written to the public schema.

Solution or Workaround

When creating the GIS Portal Toolkit 9.3 database schema in PostgreSQL 8.3, keep the user name and schema name the same. When running the grants_pg.cmd script, make sure that the gpt schema element and gptUser element match.

Code:
grants_pg [host] [port] [sde database] [sdeUser] [gpt schema] [sde schema]
[gptUser]

Where
[host] is the machine name hosting PostgreSQL
[port] is the port number of PostgreSQL. Default = 5432
[sde database] is the SDE database name. Default = sde
[sdeUser] is the sde user. Default = sde
[gpt schema] is the name for the gpt schema. Default = gpt93
[sde schema] is the name of the sde schema. Default = sde
[gptUser] is the name for the gpt schema owner. Default = gpt93

Sample: grants_pg machineName 5432 sde sde gpt93 sde gpt93