Python Alembic+;Sqlalchemy多列唯一约束
我试图使用sqlalchemy创建一个多列唯一约束,Alembic将在其自动升级脚本生成器中获取该约束 我已使用以下方法创建约束: 从sqlalchemyPython 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
导入我的模型中的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 ###