2015-12-17 89 views

回答

1

你能夠安裝擴展嗎?如果是這樣,你可以使用the PL/Python extension

CREATE FUNCTION callMyApp() 
RETURNS VOID 
AS $$ 
import subprocess 
subprocess.call(['/usr/bin/python', '/path/to/MyApp']) 
$$ LANGUAGE plpythonu; 

CREATE TRIGGER executePython 
AFTER INSERT ON messages 
FOR EACH ROW EXECUTE PROCEDURE callMyApp(); 

注意,這將運行postgres用戶,所以有可能是權限問題。

還有一個名爲PL/SH的擴展,它可能是有用的,但似乎不是官方軟件包。

CREATE FUNCTION executePython() 
RETURNS VOID 
AS $$ 
#!/bin/sh 
python /path/to/MyApp 
$$ 
LANGUAGE plsh; 

This blog post也可能對您感興趣。

此外,這幾乎是這個主題標題爲Run a shell script when a database record is written to postgres的副本。

(注意:我還沒有測試過任何此代碼。)