Saltar al contenido

SQLAlchemy: obtener una lista de tablas

Solución:

Todas las tablas se recogen en el tables atributo del objeto SQLAlchemy MetaData. Para obtener una lista de los nombres de esas tablas:

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

Si está utilizando la extensión declarativa, probablemente no esté administrando los metadatos usted mismo. Afortunadamente, los metadatos todavía están presentes en la clase base,

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

Si está tratando de averiguar qué tablas están presentes en su base de datos, incluso entre las que aún no le ha dicho a SQLAlchemy, puede usar la reflexión de tabla. Luego, SQLAlchemy inspeccionará la base de datos y actualizará los metadatos con todas las tablas que faltan.

>>> metadata.reflect(engine)

Para Postgres, si tiene varios esquemas, deberá recorrer todos los esquemas en el motor:

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)

Hay un método en engine objeto para obtener el nombre de la lista de tablas. engine.table_names()

from sqlalchemy import create_engine
engine = create_engine('postgresql://use:[email protected]/DBname')
print (engine.table_names())
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *