如何在 psql cmd 执行中设置 search_path 默认值?

Whi*_*cal 13 postgresql psql

我正在寻找一个选项来为允许设置 search_path 的 psql 控制台连接创建别名命令,但我没有在 psql util 上找到任何选项,也没有在不退出的情况下执行命令的选项。任何的想法?

我想避免设置环境选项的先决条件,如果可能的话,有一个oneliner

Whi*_*cal 19

我终于找到了,它不是 psql 选项,但它适合 oneliner: PGOPTIONS=--search_path=myschema psql -h myHost -U myUser -dmyDb -p myPort.

如果有人通过 unix 和 windows 的工作版本调用改进它,我不同意


Nei*_*gan 6

您可以使用.psqlrc在 psql 启动时运行的文件:

$ echo 'set search_path to foo,bar' >> ~/.psqlrc
$ psql ...
Run Code Online (Sandbox Code Playgroud)

  • @Whimusical你只需要做一次 .psqlrc 事情 (3认同)

小智 6

您可以指定一个 PGOPTIONS 样式的连接字符串作为参数,psql而不是使用-d/ -h/ -U/ -p/etc 选项。对于您的示例:

psql 'host=myHost user=myUser dbname=myDb port=myPort options=--search_path=myschema'
Run Code Online (Sandbox Code Playgroud)

或者,如果您更喜欢 URI 样式,

psql 'postgresql://myUser@myHost:myPort/myDb?options=--search_path%3dmyschema'
Run Code Online (Sandbox Code Playgroud)

有关详细信息,请参阅手册的“连接字符串”部分