आप बस execute
. का उपयोग कर सकते हैं :
with self.connection as cursor:
cursor.execute(open("schema.sql", "r").read())
हालांकि आप psycopg2 को autocommit
पर सेट करना चाह सकते हैं। मोड पहले
ताकि आप स्क्रिप्ट के स्वयं के लेन-देन प्रबंधन का उपयोग कर सकें।
यह अच्छा होगा यदि psycopg2 ने एक स्मार्ट मोड की पेशकश की, जहां यह एक-एक-एक बयान में फ़ाइल को पढ़ता है और इसे डीबी को भेजता है, लेकिन वर्तमान में ऐसा कोई तरीका नहीं है जहां तक मुझे पता है। $$
. का सामना करने पर इसे सही ढंग से करने के लिए इसे काफी ठोस पार्सर की आवश्यकता होगी उद्धरण (और इसके $delimiter$
वैरिएंट जहां डीमीटर कोई पहचानकर्ता हो सकता है), standard_conforming_strings
, E''
स्ट्रिंग्स, नेस्टेड फंक्शन बॉडी, आदि।
ध्यान दें कि यह नहीं होगा इसके साथ काम करें:
- कुछ भी जिसमें
psql
हो बैकस्लैश कमांड - कॉपी करें .. एसटीडीआईएन से
- बहुत लंबा इनपुट
... और इसलिए pg_dump
. से डंप के साथ काम नहीं करेगा