SQLAlchemy:架构的元数据是否相当于metadata.create_all()?

时间:2013-09-08 15:24:04

标签: python sqlalchemy

SQLAlchemy(声明性系统)是否有一个简单的解决方案来构建必要的数据库模式,类似于Base.metadata.create_all(engine)对表的工作方式?我的解决方案是下面的功能,但我想知道是否有更容易/内置的东西?我想有更好的方法来获取模式名称,而不是像我一样从表名中获取它们。

def create_schemas(engine):
    table_names = Base.metadata.tables.keys()
    all_schemas = set([t.split('.')[0] for t in table_names if len(t.split('.')) > 1])
    inspector = reflection.Inspector.from_engine(engine)
    existing_schemas = inspector.get_schema_names()
    for s in all_schemas:
        if not s in existing_schemas: engine.execute(CreateSchema(s))  

0 个答案:

没有答案