Postgresql postgres psql脚本路径

Postgresql postgres psql脚本路径,postgresql,psql,Postgresql,Psql,我正在制作一个有用的sql脚本目录来使用psql。我想能够使用它们而不必cd到目录 是否可以将psql配置为搜索调用脚本的特定路径?或者我必须用完全限定的名称调用它们吗?是的,您可以使用启动文件psqlrc来实现这一点 psqlrc和~/.psqlrc 除非传递了-X或-c选项,否则psql将尝试从系统范围的启动文件(psqlrc)读取和执行命令,然后 用户的个人启动文件(~/.psqlrc),在连接到 但在接受正常命令之前 创建文件(如果它还不存在)并将psql meta命令\cd放入其中。

我正在制作一个有用的sql脚本目录来使用psql。我想能够使用它们而不必cd到目录


是否可以将psql配置为搜索调用脚本的特定路径?或者我必须用完全限定的名称调用它们吗?

是的,您可以使用启动文件
psqlrc
来实现这一点

psqlrc
~/.psqlrc

除非传递了
-X
-c
选项,否则psql将尝试从系统范围的启动文件(
psqlrc
)读取和执行命令,然后 用户的个人启动文件(
~/.psqlrc
),在连接到 但在接受正常命令之前

创建文件(如果它还不存在)并将psql meta命令
\cd
放入其中。 根据文件:

\cd[目录]

将当前工作目录更改为
目录
。不带参数,更改当前用户的主目录

例如,将其放入用户的个人启动文件
~/.psqlrc

\set QUIET ON
\cd /var/lib/postgres/script/
\set QUIET OFF

\set QUIET ON
\set QUIET ON
可以选择在每次启动时抑制来自
\cd
的消息。

您只需将脚本放在.psqlrc文件中:

\set uptime 'select now() - backend_start as uptime from pg_stat_activity where pid = pg_backend_pid();'
然后在psql中运行查询,方法是在查询前面加一个冒号
:uptime

如果您的脚本很长,并且希望更好地组织它们,那么您可以创建脚本目录
~/psqlrc.d
或其他任何内容,然后(例如)(假设是*nix OS):

然后编辑要添加的~/.psqlrc文件:

\set uptime '\\i ~/psqlrc.d/uptime.sql'

在psql中键入
:uptime
,再次调用脚本。

有两种解决方法

  • psql\cd命令。cd$HOME文件夹

    sql>

    \光盘

    \i git/my_project/src/abc.sql

  • 操作系统软链接

    $>ln-s~/git/my\u project~/work/project/my\u project

    psql

    sql>\i~/work/project/my_project/abc.sql

  • \set uptime '\\i ~/psqlrc.d/uptime.sql'