簡體   English   中英

postgres psql 腳本路徑

[英]postgres psql script path

我正在制作一個有用的 sql 腳本目錄來使用 psql。 我希望能夠使用它們而無需 cd 到目錄。

是否可以配置 psql 來搜索調用腳本的特定路徑? 或者我是否必須使用完全限定的名稱來調用它們?

是的,您可以psqlrc使用啟動文件psqlrc 根據文檔:

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的消息。

您可以簡單地將腳本放在 .psqlrc 文件中:

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

然后在 psql 中運行查詢,在它前面加上一個冒號:uptime

或者

如果您的腳本很長並且您希望更好地組織它們,那么您可以創建腳本目錄~/psqlrc.d或其他任何內容,然后(例如)(假設使用 *nix 操作系統):

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來調用腳本。

有兩種解決方法。

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

    sql>

    \\光盤

    \\i git/my_project/src/abc.sql

  2. 操作系統軟鏈接,

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

    查詢語句

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM