Semua tabel dikumpulkan dalam tables
atribut objek SQLAlchemy MetaData. Untuk mendapatkan daftar nama tabel tersebut:
>>> metadata.tables.keys()
['posts', 'comments', 'users']
Jika Anda menggunakan ekstensi deklaratif, Anda mungkin tidak mengelola metadata sendiri. Untungnya, metadata masih ada di kelas dasar,
>>> Base = sqlalchemy.ext.declarative.declarative_base()
>>> Base.metadata
MetaData(None)
Jika Anda mencoba mencari tahu tabel apa yang ada di database Anda, bahkan di antara tabel yang belum Anda beri tahu SQLAlchemy, Anda bisa menggunakan refleksi tabel. SQLAlchemy kemudian akan memeriksa database dan memperbarui metadata dengan semua tabel yang hilang.
>>> metadata.reflect(engine)
Untuk Postgres, jika Anda memiliki banyak skema, Anda harus mengulang semua skema di mesin:
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)