2015-12-17 112 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的副本。

(注意:我还没有测试过任何此代码。)