Ans*_* S. 13 python flask-sqlalchemy alembic
我正在尝试使用sqlalchemy创建一个多列唯一约束,它将由Alembic在其自动升级脚本生成器中获取.
我使用以下方法创建约束:
来自import UniqueConstraint我模型中的sqlalchemy
UniqueConstraint('col1', 'col2', 'number', name='uix_table_col1_col2_col3')
Run Code Online (Sandbox Code Playgroud)
但是,Alembic在自动脚本生成中没有采用这种方法.
我可以通过添加来在Alembic脚本中手动创建它.
op.create_unique_constraint('uq_table_col1_col2_col3', 'table', ['col1', 'col2', 'col3'])
Run Code Online (Sandbox Code Playgroud)
是否有办法让Alembic自动生成?
谢谢您的帮助.
小智 15
我遇到了同样的问题,发现如果你使用声明模型定义表,你可以添加唯一约束__table_args__,Alembic会选择它:
class MyClass(Base):
__tablename__ = 'table'
__table_args__ = (
UniqueConstraint('col1', 'col2', 'number', name='uix_table_col1_col2_col3'),
)
Run Code Online (Sandbox Code Playgroud)
http://docs.sqlalchemy.org/en/latest/orm/extensions/declarative/table_config.html