Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/331.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 基于数据库引擎的Alembic条件_Python_Migration_Alembic - Fatal编程技术网

Python 基于数据库引擎的Alembic条件

Python 基于数据库引擎的Alembic条件,python,migration,alembic,Python,Migration,Alembic,alembic能否根据数据库类型运行稍有不同的迁移代码?例如,运行altertableobjectauto_INCREMENT=6000仅在MySQL上,但在SQLite上跳过此选项 一些背景:我们正在使用alembic来运行迁移。在许多开发人员设置中,我们使用sqlite,在生产环境中,我们使用mysql。在生产环境中,我们希望以特定的值启动一些主键,但在使用sqlite的开发设置中,这是不可能的,也不是必需的,因此我们可以跳过此步骤。可以从绑定中获取引擎名称。我在迁移中添加了以下内容: de

alembic能否根据数据库类型运行稍有不同的迁移代码?例如,运行
altertableobjectauto_INCREMENT=6000仅在MySQL上,但在SQLite上跳过此选项


一些背景:我们正在使用alembic来运行迁移。在许多开发人员设置中,我们使用sqlite,在生产环境中,我们使用mysql。在生产环境中,我们希望以特定的值启动一些主键,但在使用sqlite的开发设置中,这是不可能的,也不是必需的,因此我们可以跳过此步骤。

可以从绑定中获取引擎名称。我在迁移中添加了以下内容:

def upgrade():
    # create table call
    bind = op.get_bind()
    if bind.engine.name == 'mysql':
        op.execute("ALTER TABLE object AUTO_INCREMENT = 5000")
    else:
        print("Skipping setting initial ID value")