Список таблиц базы данных с SQLAlchemy

Я хочу реализовать функцию, которая предоставляет информацию обо всех таблицах (и их именах столбцов), которые присутствуют в базе данных (а не только те, которые созданы с помощью SQLAlchemy). Читая документацию, мне кажется, что это делается через отражение, но мне не удалось что-то сделать. Любые предложения или примеры того, как это сделать?

  • Множественный индекс столбцов при использовании декларативного расширения ORM sqlalchemy
  • SqlAlchemy Core и голосовой запрос
  • Использование Flask-SQLAlchemy в моделях Blueprint без ссылки на приложение
  • Кросс-база данных объединяется в sqlalchemy
  • SQLAlchemy - выполнение массового upsert (если существует, обновление, else insert) в postgresql
  • изменение в обработке импорта / модулей от python2 до python3?
  • Использование sqlalchemy для запроса с использованием нескольких столбцов, где в разделе
  • Ошибка SQLAlchemy для памяти в операторе select
  • 2 Solutions collect form web for “Список таблиц базы данных с SQLAlchemy”

    начать с двигателя:

    from sqlalchemy import create_engine engine = create_engine("postgresql://u:p@host/database") 

    быстрый путь ко всем именам таблиц / столбцов, используйте инспектор:

     from sqlalchemy import inspect inspector = inspect(engine) for table_name in inspector.get_table_names(): for column in inspector.get_columns(table_name): print("Column: %s" % column['name']) 

    docs: http://docs.sqlalchemy.org/en/rel_0_9/core/reflection.html?highlight=inspector#fine-grained-reflection-with-inspector

    альтернативно, используйте MetaData / Tables:

     from sqlalchemy import MetaData m = MetaData() m.reflect(engine) for table in m.tables.values(): print(table.name) for column in table.c: print(column.name) 

    docs: http://docs.sqlalchemy.org/en/rel_0_9/core/reflection.html#reflecting-all-tables-at-once

    Эй, я создал небольшой модуль, который помогает легко отражать все таблицы в базе данных, к которой вы подключаетесь с SQLAlchemy, дайте ей взглянуть: EZAlchemy

     from EZAlchemy.ezalchemy import EZAlchemy DB = EZAlchemy( db_user='username', db_password='pezzword', db_hostname='127.0.0.1', db_database='mydatabase', d_n_d='mysql' # stands for dialect+driver ) # this function loads all tables in the database to the class instance DB DB.connect() # List all associations to DB, you will see all the tables in that database dir(DB) 
    Python - лучший язык программирования в мире.