From 51c5d9e4e92195aeb080350698f87a082d69b1ed Mon Sep 17 00:00:00 2001 From: Silvie Chlupova Date: Aug 15 2019 11:24:25 +0000 Subject: [PATCH 1/2] Adding on delete cascade for table build Fixes: #822 --- diff --git a/frontend/coprs_frontend/alembic/schema/versions/3cba3ffe2836_on_delete_cascade_for_table_build.py b/frontend/coprs_frontend/alembic/schema/versions/3cba3ffe2836_on_delete_cascade_for_table_build.py new file mode 100644 index 0000000..8a4a346 --- /dev/null +++ b/frontend/coprs_frontend/alembic/schema/versions/3cba3ffe2836_on_delete_cascade_for_table_build.py @@ -0,0 +1,24 @@ +""" +on delete cascade for table build + +Revision ID: 3cba3ffe2836 +Revises: 55a07cb7bd68 +Create Date: 2019-08-05 10:36:41.354582 +""" + +import sqlalchemy as sa +from alembic import op + + +revision = '3cba3ffe2836' +down_revision = '55a07cb7bd68' + + +def upgrade(): + op.drop_constraint('build_chroot_build_id_fkey', 'build_chroot', type_='foreignkey') + op.create_foreign_key('build_chroot_build_id_fkey', 'build_chroot', 'build', ['build_id'], ['id'], ondelete='CASCADE') + + +def downgrade(): + op.drop_constraint('build_chroot_build_id_fkey', 'build_chroot', type_='foreignkey') + op.create_foreign_key('build_chroot_build_id_fkey', 'build_chroot', 'build', ['build_id'], ['id']) diff --git a/frontend/coprs_frontend/coprs/models.py b/frontend/coprs_frontend/coprs/models.py index d9dfbdf..94dedcb 100644 --- a/frontend/coprs_frontend/coprs/models.py +++ b/frontend/coprs_frontend/coprs/models.py @@ -1302,9 +1302,10 @@ class BuildChroot(db.Model, helpers.Serializer): mock_chroot_id = db.Column(db.Integer, db.ForeignKey("mock_chroot.id"), primary_key=True) mock_chroot = db.relationship("MockChroot", backref=db.backref("builds")) - build_id = db.Column(db.Integer, db.ForeignKey("build.id"), + build_id = db.Column(db.Integer, db.ForeignKey("build.id", ondelete="CASCADE"), primary_key=True) - build = db.relationship("Build", backref=db.backref("build_chroots")) + build = db.relationship("Build", backref=db.backref("build_chroots", cascade="all, delete-orphan", + passive_deletes=True)) git_hash = db.Column(db.String(40)) status = db.Column(db.Integer, default=StatusEnum("waiting")) From a2aa488298addf3db2b4f1b9db50187dc426fa9f Mon Sep 17 00:00:00 2001 From: Silvie Chlupova Date: Aug 15 2019 11:24:25 +0000 Subject: [PATCH 2/2] Removing manual chroots delete --- diff --git a/frontend/coprs_frontend/coprs/logic/builds_logic.py b/frontend/coprs_frontend/coprs/logic/builds_logic.py index df9900e..92cc829 100644 --- a/frontend/coprs_frontend/coprs/logic/builds_logic.py +++ b/frontend/coprs_frontend/coprs/logic/builds_logic.py @@ -1055,9 +1055,6 @@ ORDER BY if send_delete_action: ActionsLogic.send_delete_build(build) - for build_chroot in build.build_chroots: - db.session.delete(build_chroot) - db.session.delete(build) @classmethod