From b0838e41482e56ac74f35a58a84bab861f21d319 Mon Sep 17 00:00:00 2001 From: Robin Sonnabend <robin@fsmpi.rwth-aachen.de> Date: Wed, 11 Nov 2015 16:33:00 +0100 Subject: [PATCH] Added delete cascades and removed not null constraints --- migrations/versions/546e34fac4_.py | 48 ++++++++++++++++++++++++++++++ models/database.py | 16 +++++----- 2 files changed, 56 insertions(+), 8 deletions(-) create mode 100644 migrations/versions/546e34fac4_.py diff --git a/migrations/versions/546e34fac4_.py b/migrations/versions/546e34fac4_.py new file mode 100644 index 0000000..6ca5a6e --- /dev/null +++ b/migrations/versions/546e34fac4_.py @@ -0,0 +1,48 @@ +"""empty message + +Revision ID: 546e34fac4 +Revises: 1b175b82cee +Create Date: 2015-11-11 16:31:09.815812 + +""" + +# revision identifiers, used by Alembic. +revision = '546e34fac4' +down_revision = '1b175b82cee' + +from alembic import op +import sqlalchemy as sa + + +def upgrade(): + ### commands auto generated by Alembic - please adjust! ### + op.alter_column('speakers', 'event_id', + existing_type=sa.INTEGER(), + nullable=True) + op.alter_column('statements', 'speaker_id', + existing_type=sa.INTEGER(), + nullable=True) + op.alter_column('statements', 'topic_id', + existing_type=sa.INTEGER(), + nullable=True) + op.alter_column('topics', 'event_id', + existing_type=sa.INTEGER(), + nullable=True) + ### end Alembic commands ### + + +def downgrade(): + ### commands auto generated by Alembic - please adjust! ### + op.alter_column('topics', 'event_id', + existing_type=sa.INTEGER(), + nullable=False) + op.alter_column('statements', 'topic_id', + existing_type=sa.INTEGER(), + nullable=False) + op.alter_column('statements', 'speaker_id', + existing_type=sa.INTEGER(), + nullable=False) + op.alter_column('speakers', 'event_id', + existing_type=sa.INTEGER(), + nullable=False) + ### end Alembic commands ### diff --git a/models/database.py b/models/database.py index 249c81e..8074015 100644 --- a/models/database.py +++ b/models/database.py @@ -71,10 +71,10 @@ class Topic(db.Model): id = db.Column(db.Integer, primary_key=True) name = db.Column(db.String, unique=True) mode = db.Column(db.String) - event_id = db.Column(db.Integer, db.ForeignKey("events.id"), nullable=False) + event_id = db.Column(db.Integer, db.ForeignKey("events.id")) index = db.Column(db.Integer) - event = relationship("Event", backref=backref("topics",order_by=id), foreign_keys=[event_id]) + event = relationship("Event", backref=backref("topics",order_by=id), foreign_keys=[event_id], cascade="all") def __init__(self, name, mode, event_id): self.name = name @@ -127,8 +127,8 @@ class Speaker(db.Model): id = db.Column(db.Integer, primary_key=True) name = db.Column(db.String) number = db.Column(db.Integer) - event_id = db.Column(db.Integer, db.ForeignKey("events.id"), nullable=False) - event = relationship("Event", backref=backref("speakers",order_by=id)) + event_id = db.Column(db.Integer, db.ForeignKey("events.id")) + event = relationship("Event", backref=backref("speakers",order_by=id), cascade="all") def __init__(self, name, number, event_id): self.name = name @@ -163,16 +163,16 @@ class Speaker(db.Model): class Statement(db.Model): __tablename__ = "statements" id = db.Column(db.Integer, primary_key=True) - speaker_id = db.Column(db.Integer, db.ForeignKey("speakers.id"), nullable=False) - topic_id = db.Column(db.Integer, db.ForeignKey("topics.id"), nullable=False) + speaker_id = db.Column(db.Integer, db.ForeignKey("speakers.id")) + topic_id = db.Column(db.Integer, db.ForeignKey("topics.id")) insertion_time = db.Column(db.DateTime) executed = db.Column(db.Boolean) execution_time = db.Column(db.DateTime) is_meta = db.Column(db.Boolean, default=False) is_current = db.Column(db.Boolean, default=False) - speaker = relationship("Speaker", backref=backref("statements",order_by=id)) - topic = relationship("Topic", backref=backref("statements",order_by=id)) + speaker = relationship("Speaker", backref=backref("statements",order_by=id), cascade="all") + topic = relationship("Topic", backref=backref("statements",order_by=id), cascade="all") def __init__(self, speaker_id, topic_id, insertion_time=None, executed=False, execution_time=None, is_meta=False, is_current=False): self.speaker_id = speaker_id -- GitLab