sql >> Database >  >> RDS >> Mysql

SQLAlchemy - Een lijst met tabellen krijgen

Alle tabellen zijn verzameld in de tables attribuut van het SQLAlchemy MetaData-object. Om een ​​lijst met de namen van die tabellen te krijgen:

>>> metadata.tables.keys()
['posts', 'comments', 'users']

Als u de declaratieve extensie gebruikt, beheert u de metadata waarschijnlijk niet zelf. Gelukkig is de metadata nog steeds aanwezig in de basisklasse,

>>> Base = sqlalchemy.ext.declarative.declarative_base()
>>> Base.metadata
MetaData(None)

Als u probeert te achterhalen welke tabellen in uw database aanwezig zijn, zelfs van de tabellen waarover u SQLAlchemy nog niet eens heeft verteld, dan kunt u tabelreflectie gebruiken. SQLAlchemy zal dan de database inspecteren en de metadata bijwerken met alle ontbrekende tabellen.

>>> metadata.reflect(engine)

Als je voor Postgres meerdere schema's hebt, moet je alle schema's in de engine doorlopen:

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)


  1. PDB Ontkoppel ORA-17528 Fout

  2. Pictogrammen voor SQL-ontwikkelaars

  3. Waarom ondersteunt de MyISAM-engine van MySQL geen buitenlandse sleutels?

  4. Gebruik ik Java PooledConnections correct?