gpt4 book ai didi

使用 pg_dump 创建的普通 .sql 文件的 PostgreSQL search_path 问题

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

使用 pg_dump 创建了一个 Postgres 纯文本 SQL 文件。使用 psql -f 导入文本 SQL 文件时,一切似乎都运行良好。

但是新导入的数据库缺少search_path。源数据库具有 search_path,我希望目标数据库具有相同的路径。在编辑器中查看纯 SQL 文件,我看到了 SET search_path 命令。这是个问题还是我遗漏了什么?

最佳答案

search_path 是为每个 session 设置的,可以随时更改。您可以为数据库、角色甚至特定数据库中的角色存储预设。这将使用如下命令设置:

ALTER DATABASE test SET search_path = blarg,public;
ALTER ROLE foo SET search_path = blarg,public;

等等

或者您可能希望在 postgresql.conf 中进行常规设置?请参阅下面的链接。

一个普通的:

SET search_path = blarg,public;

就像您在 SQL 文件中看到的那样,只为执行它的 session 设置一个 search_path

潜在的问题可能是这个(quoting the manual):

Database roles are global across a database cluster installation (and not per individual database).

大胆强调我的。

使用pg_dump 备份数据库(不是使用pg_dumpall 的整个集群,不包括全局对象),不包括角色。如果您为某个角色设置了默认的 search_path,则不包括在内。

详细信息:

关于使用 pg_dump 创建的普通 .sql 文件的 PostgreSQL search_path 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42617296/

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