如何在模型中删除默认值并添加Alembic版本?

时间:2019-03-27 05:15:50

标签: python orm sqlalchemy pyramid alembic

我有一个金字塔应用程序,该应用程序使用sqlalchemy和alembic进行数据库和迁移。我需要从模型类中删除默认说明符,并向其中添加一个Alembic版本脚本。

以前是这样的:

class TableOne(Base):
    __tablename__ = "table_one"
    id = Column(Integer, primary_key=True)
    field_one = Column(Boolean(name='field_one_bool'), default=False)

我从field_one变量中删除了“ default = False”并尝试运行:

alembic revision --autogenerate -m "remove default value for field_one"

生成了Alembic版本脚本,但是我所获得的upgrade()和downgrade()方法只有:

def upgrade():
    # ### commands auto generated by Alembic - please adjust! ###
    pass
    # ### end Alembic commands ###


def downgrade():
    # ### commands auto generated by Alembic - please adjust! ###
    pass
    # ### end Alembic commands ###

基本上,如果我从模型类中删除“ default = False”,我需要知道该怎么做?

1 个答案:

答案 0 :(得分:2)

default相比,Column中的server_default完全用Python处理。由于删除它对数据库没有影响,因此生成的迁移脚本为空。换句话说,在这种情况下,您不需要迁移。