gpt4 book ai didi

postgresql - PostGIS : schema is empty 的 pg_dump

转载 作者:行者123 更新时间:2023-11-29 11:49:51 26 4
gpt4 key购买 nike

我需要将 PostGIS 安装从数据库 A 移动到新数据库 B。我在 A 上安装了 PostGIS 2.1.7,在 B 上安装了 2.1.8。两个数据库相同 - PostgreSQL 版本为 9.4.4。

A 上的 PostGIS 扩展配置如下:

                                      List of installed extensions
Name | Version | Schema | Description
------------+---------+------------+---------------------------------------------------------------------
btree_gist | 1.0 | edrive | support for indexing common datatypes in GiST
plpgsql | 1.0 | pg_catalog | PL/pgSQL procedural language
postgis | 2.1.7 | postgis | PostGIS geometry, geography, and raster spatial types and functions
(3 rows)

B上也是一样(postgis 2.1.8除外)

我用于导出的命令:

pg_dump -Fc -b A -p 5433 -U postgres > A.dmp

恢复:

pg_restore -Fc -d B -p 5432 A.dmp

这是日志的一部分:

pg_restore: [archiver (db)] could not execute query: ERROR:  type "postgis.geometry" does not exist
LINE 9: location postgis.geometry(Point,4326),
^

现在让我们看看 A.dmp 的内部 - spatial_ref_sys 表是空的,只有一个 COPY 命令,没有数据:

COPY spatial_ref_sys (srid, auth_name, auth_srid, srtext, proj4text) FROM stdin;
.....postgis..........postgres.....false.....347.............................0.....17220.....roles.
...TABLE DATA................N...COPY roles (id, name, createdate, updatedate, description, value) FROM stdin;
.....security..........services...

问题是 - 为什么 pg_dump 不转储 PostGIS 模式的内容?

UPD1:

一般文本格式转储的内容:spatial_ref_sys 的数据:

COPY spatial_ref_sys (srid, auth_name, auth_srid, srtext, proj4text) FROM stdin;
\.

但是我们在那里可以看到3911条记录:

edrivep1=# select count(*) from postgis.spatial_ref_sys;
count
-------
3911
(1 row)

-bash-4.1$ pg_restore -l edrivep1.dmp | grep spatial
4932; 0 79804 TABLE DATA postgis spatial_ref_sys postgres

最佳答案

问题已解决。第二个数据库 B 上的 postgis 模式的 search_path 错误 - 当我将 postgis 的模式更改为 public 并将两个数据库上的 search_path 设置为 'edrive,public,postgis' 时一切正常。

关于postgresql - PostGIS : schema is empty 的 pg_dump,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33904302/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com