मेरे पास व्यक्ति नामक एक ओआरएम वर्ग है, जो एक व्यक्ति तालिका के चारों ओर लपेटता है:
डीबी आदि से कनेक्शन स्थापित करने के बाद, मैं कथन चलाता हूं:
People = session.query(Person).all()
व्यक्ति तालिका में कोई डेटा नहीं है (अभी तक), इसलिए जब मैं प्रिंट करता हूं चर लोग
, मुझे एक खाली सूची मिलती है।
मैंने अपने ORM वर्ग People
में निर्दिष्ट तालिका का नाम बदलकर People_foo कर दिया है। code> (जो मौजूद नहीं है)।
मैं फिर स्क्रिप्ट चलाता हूं। मुझे आश्चर्य हुआ कि किसी तालिका तक पहुँचने का प्रयास करते समय कोई अपवाद नहीं फेंका गया जो मौजूद नहीं है।
इसलिए मेरे पास निम्नलिखित 2 प्रश्न हैं:
- मैं SQLAlchemy को कैसे सेटअप कर सकता हूं कि यह डीबी त्रुटियों को वापस स्क्रिप्ट में प्रसारित करता है?
- मैं डीबी इंजन को भेजे जा रहे एसक्यूएल को कैसे देख सकता हूं (यानी प्रिंट)?
अगर यह मदद करता है, तो मैं PostgreSQL का उपयोग कर रहा हूं।
[संपादित करें]
मैं एक पैकेज लिख रहा हूं। मेरी __main__.py
स्क्रिप्ट में, मेरे पास निम्न कोड है (यहां संक्षिप्त किया गया है):
### __main__.py सामान्य आयात करें # आयात लॉगिंग और लॉगिंग सेटअप funcs को परिभाषित करता है आदि लकड़हारा = logging.getLogger(__name__) def main(): parser = OptionParser(usage="%prog [options] <commands>", version="%prog 1.0") Commands = OptionGroup(parser, "commands") parser.add_option( "-l", "--logfile", dest="logfile", metavar="FILE", help="log to FILE। अगर सेट नहीं है, तो कोई लॉगिंग नहीं की जाएगी") parser.add_option( " --level", dest="loglevel", metavar="LOG LEVEL", help="Debug level. यदि सेट नहीं है, तो स्तर कम से कम होगा") # यदि विकल्प नहीं है तो डिफॉल्ट सेट करें। अन्य: लॉगलेवल = विकल्प। लॉगलेवल यदि विकल्प नहीं है। py आयात लॉगिंग # सुनिश्चित नहीं है कि __main__.py logging.getLogger("sqlalchemy.engine").se में लॉगर को "बाध्य" कैसे करें। tLevel(logging.INFO) इंजन = create_engine("postgres://postgres:[email protected]:port/dbname", echo=True)
[Edit2]
सामान्य मॉड्यूल लकड़हारा को सही ढंग से सेट करता है, और मैं अपने अन्य मॉड्यूल में लकड़हारा का उपयोग कर सकता हूं जो सामान्य आयात करते हैं।
हालांकि dbfuncs
मॉड्यूल में, मैं मुझे निम्न त्रुटि/चेतावनी मिल रही है:
के लिए कोई हैंडलर नहीं मिला।लॉगर "sqlalchemy.engine.base.Engine