ValueError: Constraint must have a name
class Post(db.Model):
id = db.Column(db.Integer, primary_key=True)
title = db.Column(db.String(100), nullable=False)
date_posted = db.Column(db.DateTime, nullable=False, default=datetime.utcnow)
content = db.Column(db.Text, nullable=False)
user_id = db.Column(db.Integer, db.ForeignKey('user.id'), nullable=False)
# category_id = db.Column(db.Integer, db.ForeignKey('category.id'), nullable=True)
def __repr__(self):
return f"Post: {self.title}"
class Category(db.Model):
id = db.Column(db.Integer, primary_key=True)
name = db.Column(db.String(100), nullable=False)
# posts = db.relationship('Post', backref='category', lazy='joined')
def __repr__(self):
return f"Category: {self.name}"
Ошибка заключается в следующем: когда я пытаюсь установить отношение между моделями один ко многим и сделать миграцию, возникает ошибка ValueError: Constraint must have a name
после команды flask db upgrade
. Я думал, что она возникает из-за того, что у меня в классе Post
у атрибута category_id
установлено nullable=False
. Я поменял это, но это не исправило ситуацию. Я также пробовал откатывать миграции, но это не помогло.
Источник: Stack Overflow на русском