是否有可能獲取SQLAlchemy中所有數據庫的列表?我需要一個跨數據庫解決方案,所以基本的「SHOW DATABASES」不會削減它。SQLAlchemy中的數據庫列表
與MetaData/Inspector功能類似,顯示所有表和列。
是否有可能獲取SQLAlchemy中所有數據庫的列表?我需要一個跨數據庫解決方案,所以基本的「SHOW DATABASES」不會削減它。SQLAlchemy中的數據庫列表
與MetaData/Inspector功能類似,顯示所有表和列。
看起來我自己找到了答案。
Inspector類中存在一個名爲get_schema_names的方法,該方法沒有很好的記錄,但返回了數據庫列表(僅用MySQL和Postgres進行了測試)。
用法:
import sqlalchemy as sa
engine = sa.create_engine('mysql+pymysql://user:[email protected]')
insp = sa.inspect(engine)
db_list = insp.get_schema_names()
print(db_list)
這裏是一個解決方案,我想出了MySQL的:
from sqlalchemy import create_engine
eng = create_engine('mysql+pymysql://root:[email protected]:3306', pool_recycle=3600)
q = eng.execute('SHOW DATABASES')
available_tables = q.fetchall()
它的執行,並返回所有行。
也許我錯過了一些東西 - 但這不會返回數據庫列表。它只是返回單個數據庫上的模式列表。我正在使用PostgreSQL 9.5。 – guyarad