SQLAlchemy:“如果不存在,则创建架构”

2024-06-26 13:24:25 发布

您现在位置:Python中文网/ 问答频道 /正文

我想在SQLAlchemy中执行“createschema IF NOT EXISTS”查询。 还有比这更好的方法吗:

    engine = sqlalchemy.create_engine(connstr)

    schema_name = config.get_config_value('db', 'schema_name')

    #Create schema; if it already exists, skip this
    try:
        engine.execute(CreateSchema(schema_name))
    except sqlalchemy.exc.ProgrammingError:
        pass

我使用的是python3.5。在


Tags: 方法nameconfiggetifsqlalchemyvalueschema
2条回答

您可以使用优秀的^{}包以非常简洁的方式实现这一点。在

首先,安装软件包:

pip install sqlalchemy_utils

然后像这样使用它:

^{pr2}$

官方文档中的例子使用了PostgreSQL,我个人在MySQL 8上使用过它。在

我也有同样的问题,我发现答案是:

if not engine.dialect.has_schema(engine, schema_name):
    engine.execute(sqlalchemy.schema.CreateSchema(schema_name))

我们也可以在没有引擎实例的情况下检查模式,但是使用连接

^{pr2}$

相关问题 更多 >