Вопрос

I have database1 where postgis is installed in the public schema. And database2 where postgis is located in a schema called postgis.

When I dump database1.schema1, schema1.table1 references its geom column as public.geometry.

Therefore pg_restore throws "schema public does not exists" error because schema1.table1 has public.geometry column and the schema does not exists nor is postgis installed in that schema.

How can I make a clean pg_dump without having schema qualified geometry columns?

The database2 search_path points to the schema postgis. I am using PostgresSQL 10.

Это было полезно?

Решение

You cannot do that. Install PostGIS in the same schema in both databases. That shouldn't be a problem in the new database.

The alternative would be to manually edit the dump file, which is tedious and error prone.

Другие советы

As stated By Laurenz, you must install PostGIS in the same schema in both databases.

Afterward, it is possible to migrate postgis extensions doing the following : https://www.postgis.net/2017/11/07/tip-move-postgis-schema/

The migration can be done in an intermediate DB if need be.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с dba.stackexchange
scroll top