postgres psql脚本路径

时间:2014-08-11 23:46:19

标签: postgresql psql

我正在创建一个有用的sql脚本目录来使用psql。我希望能够使用它们而无需cd到目录。

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

3 个答案:

答案 0 :(得分:2)

是的,您可以使用启动文件psqlrcPer documentation:

  

psqlrc~/.psqlrc

     

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

创建文件(如果它还不存在)并将psql元命令\cd放在那里。 每个文档:

  

\cd [ directory ]

     

将当前工作目录更改为directory。没有参数,改变当前用户的主目录。

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

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

\set QUIET ON\set QUIET ON可选择在每次启动时停用\cd的消息。

答案 1 :(得分:0)

您可以简单地将脚本放在.psqlrc文件中:

\set uptime 'select now() - backend_start as uptime from pg_stat_activity where pid = pg_backend_pid();'

然后在psql中运行查询,方法是在其前面添加冒号:uptime

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

echo "select now() - backend_start as uptime from pg_stat_activity where pid = pg_backend_pid();" > ~/psqlrc.d/uptime.sql

然后编辑你的〜/ .psqlrc文件来添加:

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

并再次通过在psql中键入:uptime来调用脚本。

答案 2 :(得分:0)

有两种解决方法。

  1. psql \cd 命令。 cd 你的 $HOME 文件夹。

    sql>

    \cd

    \i git/my_project/src/abc.sql

  2. 操作系统软链接,

    $> ln -s ~/git/my_project ~/work/project/my_project

    psql

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