我在文档中找不到任何相关信息,但是如何获取在 SQLAlchemy 中创建的表的列表?
我使用类方法来创建表格。
最佳答案
所有表都收集在 SQLAlchemy MetaData 对象的 tables
属性中。要获取这些表的名称列表:
>>> metadata.tables.keys()
['posts', 'comments', 'users']
如果您使用的是声明式扩展,那么您可能没有自己管理元数据。幸运的是,元数据仍然存在于基类中,
>>> Base = sqlalchemy.ext.declarative.declarative_base()
>>> Base.metadata
MetaData(None)
如果你想弄清楚你的数据库中存在哪些表,即使是那些你还没有告诉 SQLAlchemy 的表,那么你可以使用表反射。然后 SQLAlchemy 将检查数据库并使用所有缺失的表更新元数据。
>>> metadata.reflect(engine)
对于 Postgres,如果您有多个架构,则需要遍历引擎中的所有架构:
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)
关于python - SQLAlchemy - 获取表列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6473925/