सभी तालिकाएँ tables
. में एकत्रित की जाती हैं SQLAlchemy मेटाडेटा ऑब्जेक्ट की विशेषता। उन तालिकाओं के नामों की सूची प्राप्त करने के लिए:
>>> metadata.tables.keys()
['posts', 'comments', 'users']
यदि आप घोषणात्मक एक्सटेंशन का उपयोग कर रहे हैं, तो संभवतः आप स्वयं मेटाडेटा का प्रबंधन नहीं कर रहे हैं। सौभाग्य से, मेटाडेटा अभी भी बेसक्लास पर मौजूद है,
>>> Base = sqlalchemy.ext.declarative.declarative_base()
>>> Base.metadata
MetaData(None)
यदि आप यह पता लगाने की कोशिश कर रहे हैं कि आपके डेटाबेस में कौन सी तालिकाएँ मौजूद हैं, यहाँ तक कि उनमें से भी जिनके बारे में आपने SQLAlchemy को अभी तक नहीं बताया है, तो आप तालिका प्रतिबिंब का उपयोग कर सकते हैं। SQLAlchemy तब डेटाबेस का निरीक्षण करेगा और सभी अनुपलब्ध तालिकाओं के साथ मेटाडेटा को अपडेट करेगा।
>>> metadata.reflect(engine)
Postgres के लिए, यदि आपके पास एकाधिक स्कीमा हैं, तो आपको इंजन में सभी स्कीमाओं को लूप करना होगा:
from sqlalchemy import inspect
inspector = inspect(engine)
schemas = inspector.get_schema_names()
for schema in schemas:
print("schema: %s" % schema)
for table_name in inspector.get_table_names(schema=schema):
for column in inspector.get_columns(table_name, schema=schema):
print("Column: %s" % column)