/ / कैसे अजगर स्क्रिप्ट को निष्पादित करने के लिए PostgreSql में संग्रहीत कार्यविधि बनाते हैं? - postgresql

PostgreSql में एक संग्रहीत प्रक्रिया को एक पायथन स्क्रिप्ट कैसे निष्पादित करें? - postgresql

मैं एक अजगर स्क्रिप्ट को PostgreSql में संग्रहीत कार्यविधि के रूप में निष्पादित करना चाहता हूं

मुझे ऐसा कुछ चाहिए:

 CREATE TRIGGER executePython
AFTER INSERT ON mytable
FOR EACH ROW
BEGIN
SYSTEM("python MyApp");
END;

कोई भी मेरी मदद कर सकता है, कृपया?

उत्तर:

उत्तर № 1 के लिए 1

क्या आप एक्सटेंशन इंस्टॉल करने में सक्षम हैं? यदि हां, तो आप इसका उपयोग कर सकते हैं the PL/Python विस्तार

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 उपयोगकर्ता के रूप में चलेगा, इसलिए अनुमति समस्याएं हो सकती है ।

वहां ' s भी एक एक्सटेंशन बुलाया PL/SH, जो उपयोग की हो सकती है, लेकिन doesn "टी के लिए एक सरकारी पैकेज दिखाई देते हैं ।

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

यह ब्लॉग पोस्ट ब्याज की आप के लिए हो सकता है, के रूप में अच्छी तरह से ।

इसके अलावा, इस हकदार इस धागे की लगभग एक डुप्लिकेट है postgres करने के लिए कोई डेटाबेस रिकॉर्ड लिखा है, जब कोई शेल स्क्रिप्ट चलाएं.

(ध्यान दें: मैं हेवन "टी इस कोड के किसी भी परीक्षण किया.)