你能够安装扩展吗?如果是这样,你可以使用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的副本。
(注意:我还没有测试过任何此代码。)