Python Alembic+;Sqlalchemy多列唯一约束

Python Alembic+;Sqlalchemy多列唯一约束,python,flask-sqlalchemy,alembic,Python,Flask Sqlalchemy,Alembic,我试图使用sqlalchemy创建一个多列唯一约束,Alembic将在其自动升级脚本生成器中获取该约束 我已使用以下方法创建约束: 从sqlalchemy导入我的模型中的UniqueConstraint UniqueConstraint('col1', 'col2', 'number', name='uix_table_col1_col2_col3') 然而,Alembic在其自动脚本生成中并没有注意到这一点 我可以在Alembic脚本中通过添加 op.create_unique_constr

我试图使用sqlalchemy创建一个多列唯一约束,Alembic将在其自动升级脚本生成器中获取该约束

我已使用以下方法创建约束:

从sqlalchemy
导入我的模型中的UniqueConstraint

UniqueConstraint('col1', 'col2', 'number', name='uix_table_col1_col2_col3')
然而,Alembic在其自动脚本生成中并没有注意到这一点

我可以在Alembic脚本中通过添加

op.create_unique_constraint('uq_table_col1_col2_col3', 'table', ['col1', 'col2', 'col3'])
有没有办法让Alembic自动生成


谢谢你的帮助

我遇到了同样的问题,发现如果使用声明性模型定义表,可以将其添加到
\uuuuu table\u args\uuuuu
的唯一约束中,Alembic将选择它:

class MyClass(Base):
    __tablename__ = 'table'
    __table_args__ = (
        UniqueConstraint('col1', 'col2', 'number', name='uix_table_col1_col2_col3'),
    )
我可以确认:

....
        __table_args__ = (UniqueConstraint('col1', 'col2'),)
....
将以下内容添加到alembic升级文件:

def upgrade():
    # ### commands auto generated by Alembic - please adjust! ###
    op.create_unique_constraint(None, 'instruments', ['col1', 'col2'])
    # ### end Alembic commands ###