Каскадное удаление отношений SQLAlchemy

Я прочитал документацию, но до сих пор не могу понять, как правильно настроить мои модели. Это очень простая база данных телешоу, и я хочу настроить ее так, чтобы Эпизод должен иметь соответствующий родительский экземпляр Шоу, чтобы существовать в базе данных. Всякий раз, когда шоу удаляется, я хочу, чтобы все его эпизоды удалялись каскадно.

TL;DR: show.delete() --> удаляются все эпизоды, где ep.show_id == show.id

Как мне это сделать?

class Show(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    title = db.Column(db.String(128), nullable=False)

class Episode(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    title = db.Column(db.String(256), nullable=False)

    # relationships
    show_id = db.Column(db.Integer, db.ForeignKey('show.id'), nullable=False)
    show = db.relationship('Show',
                           backref=db.backref('episodes'),
                           lazy='joined')

person Peter Sampras    schedule 03.11.2013    source источник


Ответы (1)