Tất cả các bảng được thu thập trong tables
thuộc tính của đối tượng SQLAlchemy MetaData. Để có danh sách tên của các bảng đó:
>>> metadata.tables.keys()
['posts', 'comments', 'users']
Nếu bạn đang sử dụng tiện ích mở rộng khai báo, thì có thể bạn đang không tự quản lý siêu dữ liệu. May mắn thay, siêu dữ liệu vẫn còn trên baseclass,
>>> Base = sqlalchemy.ext.declarative.declarative_base()
>>> Base.metadata
MetaData(None)
Nếu bạn đang cố gắng tìm ra những bảng nào có trong cơ sở dữ liệu của mình, ngay cả trong số những bảng mà bạn thậm chí chưa nói với SQLAlchemy về nó, thì bạn có thể sử dụng phản chiếu bảng. Sau đó, SQLAlchemy sẽ kiểm tra cơ sở dữ liệu và cập nhật siêu dữ liệu với tất cả các bảng bị thiếu.
>>> metadata.reflect(engine)
Đối với Postgres, nếu bạn có nhiều lược đồ, bạn sẽ cần lặp qua tất cả các lược đồ trong công cụ:
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)