Alembic迁移作用于同一数据库的不同版本

时间:2014-12-02 20:12:15

标签: python sqlalchemy alembic

我正在尝试使用alembic迁移来处理同一数据库的不同版本。一个例子是我有两个数据库,一个是实时的,一个是用于测试的。它们中的每一个都可能处于不同的迁移状态。首先,测试数据库可能根本不存在。

live有一个包含table1A列的表B。现在我想添加列C。我将模型更改为包含C,并生成具有以下代码的迁移脚本

op.add_column('table1', sa.Column('C', sa.String(), nullable=True))

这适用于现有的live数据库。

如果我现在调用alembic upgrade head引用不存在的test数据库,则会收到(Operational Error) duplicate column name...错误。我假设这是由于我的模型包含C列,并且alembic / sqlalchemy会自动创建完整的表(如果它不存在)。

我应该简单地捕获错误还是有更好的方法来做到这一点?

0 个答案:

没有答案