postgresql 如何不需要每次都重写SET search_path = ag_catalog

lo8azlld  于 2023-06-22  发布在  PostgreSQL
关注(0)|答案(8)|浏览(167)

每次运行postgres示例,都需要手动将search_path通过SET search_path=ag_catalog;设置为ag_catalog,然后加载age,有没有办法让我不用每次都这么做?

yzuktlbb

yzuktlbb1#

默认的schema/search_path是'public'。为了将默认的search_path更改为'ag_catalog'而不是public,您需要更改db集群文件夹中的postgresql.conf文件。您需要取消注解并将search_path更改为

search_path = 'ag_catalog, "$user", public' # schema names
jhkqcmku

jhkqcmku2#

除非您更改postgresql.conf文件中的默认配置,否则每次都必须更改它。
要编辑postgresql.conf,请执行以下操作:
1.导航到postgresql目录,然后导航到data文件夹。
1.打开postgresql.conf文件。
1.搜索search_path属性,然后取消注解并添加ag_catalog

search_path = '"$user", public,ag_catalog'  # schema names
3mpgtkmj

3mpgtkmj3#

如果只在集群中的一个数据库中使用age,则可以只为该数据库设置search_path,而不更改全局设置。
从这里Alter Database
其余的表单更改PostgreSQL数据库运行时配置变量的会话默认值。每当随后在该数据库中启动新会话时,指定的值都将成为会话默认值。特定于数据库的默认值将覆盖postgresql.conf中存在的或从postgres命令行接收的任何设置。只有数据库所有者或超级用户可以更改数据库的会话默认值。某些变量不能以这种方式设置,或者只能由超级用户设置。
这意味着您可以:

ALTER DATABASE the_db SET search_path = ag_catalog;

如果您需要撤消此操作,则:

ALTER DATABASE the_db SET search_path = default;

返回到postgresql.conf设置。

w41d8nur

w41d8nur4#

创建群集时,将在PostgreSQL目录中创建一个与群集同名的文件夹。在这个文件夹中,有一个名为postgresql.conf的文件。使用文本编辑器打开此文件,找到包含术语“search_path”的行。删除行开头的'#'符号以取消注解。然后,修改该行以设置search_path的值,如下所示:

search_path = 'ag_catalog, "$user", public'
4sup72z8

4sup72z85#

添加到现有的答案中,要直接从终端设置search_path,请使用vim编辑postgresql.conf文件。从已安装的postgres目录:

vim {cluster_name}/postgresql.conf

编辑器打开后,键入/search_path跳转到需要修改的行。按i切换到“INSERT”模式,允许您插入或删除字符。修改完成后,点击esc退出“INSERT”模式,然后按:wq写入并退出编辑器。

eblbsuwk

eblbsuwk6#

使用任何文本编辑器打开数据库的postgresql.conf文件。在必填字段中进行相应更改。在本例中,在search_path变量中添加ag_catalog。
保存文件并重新启动服务器。
注意:有时候,即使文件被更改,这也不起作用,因此在这种情况下,您必须找到另一种方法。

neskvpey

neskvpey7#

您可以通过更新使用首选编辑器创建的数据库目录中的postgresql.conf文件来设置此设置。取消注解并在文件中添加所需数据,如下所示:

# you can also avoid loading age everytime using the statement below
shared_preload_libraries = 'age'

# To set the path
search_path = 'ag_catalog, "$user", public'
yizd12fk

yizd12fk8#

为了避免每次运行Postgres示例时都将SETsearch_path转换为ag_catalog,您必须编辑配置文件,即postgresql.conf文件,将search_path设置为'ag_catalog, "$user", public'并保存该文件。

相关问题