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