sql >> Databasteknik >  >> RDS >> Mysql

SQLAlchemy - Få en lista med tabeller

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)


  1. Inga resultat efter att ha tagit bort mysql ft_stopword_file

  2. Saknar mysql.sock; ger OperationalError:(2002, Kan inte ansluta till lokal MySQL-server via sockeln '/tmp/mysql.sock' (2))

  3. MySQL DATEDIFF() vs TIMESTAMPDIFF():Vad är skillnaden?

  4. importera redan skapad SQLite-databas (xamarin)