Alla tabeller är samlade i tables
attribut för SQLAlchemy MetaData-objektet. För att få en lista över namnen på dessa tabeller:
>>> metadata.tables.keys()
['posts', 'comments', 'users']
Om du använder det deklarativa tillägget hanterar du förmodligen inte metadata själv. Lyckligtvis finns metadata fortfarande kvar i basklassen,
>>> Base = sqlalchemy.ext.declarative.declarative_base()
>>> Base.metadata
MetaData(None)
Om du försöker ta reda på vilka tabeller som finns i din databas, även bland de du inte ens har berättat för SQLAlchemy om än, så kan du använda tabellreflektion. SQLAlchemy kommer sedan att inspektera databasen och uppdatera metadata med alla tabeller som saknas.
>>> metadata.reflect(engine)
För Postgres, om du har flera scheman, måste du gå igenom alla scheman i motorn:
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)