sql >> Databáze >  >> RDS >> Mysql

SQLAlchemy - Získání seznamu tabulek

Všechny tabulky jsou shromážděny v tables atribut objektu SQLAlchemy MetaData. Chcete-li získat seznam názvů těchto tabulek:

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

Pokud používáte deklarativní rozšíření, pravděpodobně nespravujete metadata sami. Naštěstí jsou metadata stále přítomna v základní třídě,

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

Pokud se snažíte zjistit, jaké tabulky jsou přítomné ve vaší databázi, dokonce i mezi těmi, o kterých jste SQLAlchemy ještě neřekli, můžete použít reflexi tabulek. SQLAlchemy poté zkontroluje databázi a aktualizuje metadata se všemi chybějícími tabulkami.

>>> metadata.reflect(engine)

Pro Postgres, pokud máte více schémat, budete muset procházet všemi schématy v enginu:

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. mysqli or die, musí to zemřít?

  2. TSQL DateDiff vrátí počet dní se 2 desetinnými místy

  3. MySql udělte uživateli oprávnění

  4. Udělte oprávnění pro konkrétní databázi v PostgreSQL