[英]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
來調用腳本。
有兩種解決方法。
psql \\cd 命令。 cd 你的 $HOME 文件夾。
sql>
\\光盤
\\i git/my_project/src/abc.sql
操作系統軟鏈接,
$> 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.