133 votes

SQLAlchemy - Obtenir une liste de tables

Je n'ai pas trouvé d'information à ce sujet dans la documentation, mais comment puis-je obtenir une liste des tables créées dans SQLAlchemy ?

J'ai utilisé la méthode des classes pour créer les tableaux.

1voto

RyanAbnavi Points 171

Le meilleur moyen est d'utiliser inspect :

  1. Créer l'inspecteur et le connecter au moteur
  2. Recueillir les noms des tables de la base de données
  3. Recueillir les noms des colonnes de la table

    from sqlalchemy import create_engine, inspect

    engine = create_engine("sqlite:///../Resources/dow.sqlite") conn = engine.connect() inspector = inspect(conn) inspector.get_table_names() #returns "dow"

    columns = inspector.get_columns('dow')

    for column in columns: print(column["name"], column["type"])

1voto

BSalita Points 933

Exemple complet d'affichage de toutes les informations de la colonne. Suppose que la variable df contient un cadre de données à écrire dans la base de données SQL.

from sqlalchemy import create_engine, inspect
from sqlalchemy_utils.functions import database_exists, create_database

engine = create_engine('sqlite:///mydb.sqlite', echo=True)

if not database_exists(engine.url):
    create_database(engine.url)
else:
    engine.connect()

df.to_sql('MyTable', con=engine, if_exists='replace', index=False) # index=False avoids auto-creation of level_0 (name tiebreaker)

inspector = inspect(engine)
table_names = inspector.get_table_names()
for table_name in table_names:
    print(f"Table:{table_name}")
    column_items = inspector.get_columns(table_name)
    print('\t'.join(n for n in column_items[0]))
    for c in column_items:
        assert len(c) == len(column_items[0])
        print('\t'.join(str(c[n]) for n in c))

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X