我在Linux上一個古老的庫存控制應用程序。它只能打印到文本文件與其他軟件進行通信。當我需要在我們的PostgreSQL數據庫更新表我一直在使用psql -f text_file
(其中text_file
是我們的舊的應用程序生成的SQL命令的文件)這工作得很好,但作爲PSQL會議之前完成每個文本文件後終止相當緩慢。我想知道是否有方法調用一個psql會話作爲後臺進程,等待輸入並不會終止。PostgreSQL的背景會話
回答
我不能完全確定你想要什麼。如果你只是有一堆需要處理的,使用的文件:
cat *.sql | psql -f -
如果你只是想繼續運行的psql並讓它運行在一個文件中的任何改變,這樣的事情可能工作:
(
while sleep 5; do
print "\i sql_file.sql;"
cat /dev/null > sql_file.sql
done
) | psql --file -
我不知道如何明智,這是,我從來沒有做過它自己。
如果你想運行一幫對你的數據庫,一前一後的sql文件,我就開始了psql
互動控制檯:
psql mydatabase
並與the \i command後,其他執行一個文件:
\i text_file
如果你想腳本/自動化的東西,一個FIFO可能是你所需要的。我寫了more about that here。
或者您可能會對協同加工如Craig Ringer describes here感興趣。
只是好奇,爲什麼最好只是一次捕獲所有的文件'psql -f-'? –
@TimPote:如果你要檢查每個文件的結果,你繼續,或者如果文件有一定的順序,或者如果不是所有的人都將被執行之前,都可以在同一時間,或者如果同一個文件可以是優選(改變內容)被反覆使用。我在我的介紹中寫了「一個接一個地」來提及這一點。 –
+1對於命名管道 –
- 1. 會話沒有註冊jQuery的背景
- 2. 訪問ASP.NET會話的背景
- 3. Magento每次會話改變背景
- 4. 背景Chrome瀏覽器會話問題
- 5. PostgreSQL:會話超時?
- 6. CherryPy會話與Postgresql
- 7. 對話框背後的模糊背景
- 8. 對話背後的模糊背景
- 9. JQuery Mobile對話框背景
- 10. symfony2會話存儲與postgresql
- 11. 殺死postgresql會話/連接
- 12. NSURLSession背景會話中的NSURLSessionDownloadTask給出錯誤
- 13. Ncurses:對話框的背景色會被改變嗎?
- 14. 在會話訪問的背景下運行php腳本
- 15. 背後的對話框背後的背景
- 16. AsyncTask不會在背景
- 17. 背景圖像不會DIV
- 18. 背景不會顯示HTML5
- 19. DIV背景不會在Chrome
- 20. 帶電話的導航器背景
- 21. 在iPhone SDK的背景撥號電話
- 22. jQuery的對話框背景變化
- 23. 背景說話的所有選項卡
- 24. 帶覆蓋背景的jquery對話框
- 25. 背景中的電話地理位置
- 26. NSURLSessionUploadTask背景會話 - 文件上傳一些參數
- 27. jquery模態對話框背景不會超出iframe
- 28. 確定應用程序或會話背景
- 29. 對話框不會關閉背景/疊加點擊
- 30. 定製NSURLProtocol子類不可用於背景會話
+1'cat'路徑應該是最簡單的解決方案,如果你只是想在沒有特定的順序執行了一堆文件,不想檢查的結果之間。 –
感謝Tim,允許我在應用程序中生成SQL語句,然後將它們輸出到僞打印機psql -f - 這大大減少了開銷。 – WoodWork