【问题标题】:How to remove default value in model and add alembic version?如何删除模型中的默认值并添加 alembic 版本?
【发布时间】:2019-08-17 14:36:16
【问题描述】:

我有一个金字塔应用程序,它使用 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”,我需要知道我应该在 alembic 脚本中做什么。

【问题讨论】:

    标签: python orm sqlalchemy pyramid alembic


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 2019-04-14
      • 2016-11-09
      • 1970-01-01
      • 2018-08-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-09-25
      • 1970-01-01
      相关资源
      最近更新 更多