【问题标题】:Alembic autogenerate migration without check contraint没有检查约束的 Alembic 自动生成迁移
【发布时间】:2016-05-21 22:41:10
【问题描述】:

我是 alembic 和 sqlalchemy 世界的新手
假设我有模型:

class Model(Base):
    __tablename__ = 'models'
    id = Column(Integer, primary_key=True)
    value = Column(Integer, CheckContraint('value >= 0'))

如果我做 alembic --config=development.ini revision --autogenerate -m "init" 我举个例子

def upgrade():
    op.create_table('models',
        sa.Column('id', sa.Integer(), nullable=False),
        sa.Column('value', sa.Integer())

在这里我想念 create_check_constraint 我怎样才能做到自动或我应该手动添加它?我希望它与 postgresql 一起使用

【问题讨论】:

    标签: python postgresql sqlalchemy migration alembic


    【解决方案1】:

    Alembic 自动生成当前不支持检查约束检测。

    来自https://alembic.readthedocs.org/en/latest/autogenerate.html#what-does-autogenerate-detect-and-what-does-it-not-detect

    目前无法自动生成,但最终会检测到:

    一些独立的约束添加和删除,例如 CHECK、PRIMARY KEY - 这些都没有完全实现。

    似乎您需要手动完成,例如通过使用execute

    【讨论】:

    • 好吧,我需要的不是什么大问题,因为 sqlalchemy 自己检查它。所以留给我的就是等待。谢谢
    猜你喜欢
    • 2012-06-26
    • 2020-11-05
    • 2013-06-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-05-21
    相关资源
    最近更新 更多