你能夠安裝擴展嗎?如果是這樣,你可以使用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的副本。
(注意:我還沒有測試過任何此代碼。)