В SQLAlchemy, как создать уникальную пару?
class PostsSubscribe(Base):
__tablename__ = 'posts_subscribe'
id = Column(Integer, primary_key = True)
post_id = Column(Integer, ForeignKey('posts_posts.id'), nullable=False)
persona_id = Column(Integer, ForeignKey('personas_personas.id'), nullable=False)
UniqueConstraint('post_id', 'persona_id') #this doesn't work.
Base.metadata.create_all(engine)
Это мой стол до сих пор. Как вы можете видеть, я использую "Declorative" способ определения таблиц. Я хочу создать уникальный ключ , но моя линия не работает.
Как создать уникальную пару?
1 ответов
UniqueConstraint
должно быть не для класса модели, а для его таблицы. Вы можете __table_args__
для этого:
class PostsSubscribe(Base):
__tablename__ = 'posts_subscribe'
id = Column(Integer, primary_key = True)
post_id = Column(Integer, ForeignKey('posts_posts.id'), nullable=False)
persona_id = Column(Integer, ForeignKey('personas_personas.id'), nullable=False)
__table_args__ = (UniqueConstraint('post_id', 'persona_id', name='_person_post_uc'),
)