2016-06-07 65 views
0

我試圖運行PostgreSQL文檔中演示的演示背景工作者示例。我下載它:https://github.com/postgres/postgres/tree/master/src/test/modules/worker_spi後臺工作人員worker_spi示例PostgreSQL

我能夠編譯代碼和創建下列文件: 「worker_spi.o」和「worker_spi.so」

我然後跑worker_spi - 1.0.sql與: - \我worker_spi - 1.0.sql。 最後,在連接到數據庫後,我創建了一個在SQL文件中指定的擴展。但是,我認爲它不起作用。我是否需要將這個「.so」文件放在其他目錄中?任何幫助深表感謝。

+0

我不會關注鏈接內的鏈接。請發佈[最小,完整和可驗證示例](http://stackoverflow.com/help/mcve),其中顯示了您嘗試過的內容。而且,「我認爲它沒有工作」並沒有充分描述這個問題。 –

+0

對不起,我感到困惑。我只是試圖運行給出的演示示例。他們最初創建了一個模式和一張表。然後通過後臺工作人員,他們刪除並更新表格中的行。在初始創建表格時,還會打印日誌消息。 – akashag26

+0

運行SQL腳本後,我無法看到任何模式或表。另外,postgreSQL的默認日誌文件位置是什麼? – akashag26

回答

0

是的.so文件需要安裝到PKGLIBDIR中。

您可以通過運行「pg_config」來了解PKGLIBDIR的功能。例如,一個Ubuntu系統的PostgreSQL 9.4上,pg_config將返回:

PKGLIBDIR = /usr/lib/postgresql/9.4/lib

此外,worker_spi - 1.0.sql應安裝到SHAREDIR /延期。在Ubuntu系統的PostgreSQL 9.4的SHAREDIR從pg_config返回是:

SHAREDIR = /usr/share/postgresql/9.4

並安裝worker_spi目錄 - 1.0.sql是:

/usr/share/postgresql/9.4/extension

一旦worker_spi - 1.0.sql和worker_spi.so文件安裝到正確的位置,你應該能夠執行:

創建擴展worker_spi;

從任何數據庫,並有擴展安裝。

使用「\ i worker_spi - 1.0.sql」不會將其作爲擴展安裝,而是作爲一組獨立對象安裝。

+0

感謝您的解釋。這現在更有意義了。 我複製了相應的文件到以下位置: 「/usr/pgsql-9.4/share/extension」 和 「/usr/pgsql-9.4/lib」 我再重新啓動Postgres的服務器。最後,當我嘗試創建所需的擴展時,它不會被創建。還有什麼我需要做的嗎? – akashag26

+0

還有另一個名爲worker_spi.control的文件。我需要把它放在其他目錄嗎? – akashag26

+0

當您嘗試創建擴展時,您會看到什麼錯誤消息? – korry