From f7f99f2a7814f1651396f14fab0b78601b1333d0 Mon Sep 17 00:00:00 2001 From: Miguel Martinez Trivino Date: Wed, 8 Nov 2023 22:50:59 +0100 Subject: [PATCH] fix(DB): cleanup items on organization deletion Signed-off-by: Miguel Martinez Trivino --- .../data/ent/migrate/migrations/20231108214833.sql | 4 ++++ .../internal/data/ent/migrate/migrations/atlas.sum | 3 ++- app/controlplane/internal/data/ent/migrate/schema.go | 8 ++++---- app/controlplane/internal/data/ent/schema/casmapping.go | 6 +++--- .../internal/data/ent/schema/orginvitation.go | 2 +- 5 files changed, 14 insertions(+), 9 deletions(-) create mode 100644 app/controlplane/internal/data/ent/migrate/migrations/20231108214833.sql diff --git a/app/controlplane/internal/data/ent/migrate/migrations/20231108214833.sql b/app/controlplane/internal/data/ent/migrate/migrations/20231108214833.sql new file mode 100644 index 000000000..b1b62537c --- /dev/null +++ b/app/controlplane/internal/data/ent/migrate/migrations/20231108214833.sql @@ -0,0 +1,4 @@ +-- Modify "cas_mappings" table +ALTER TABLE "cas_mappings" DROP CONSTRAINT "cas_mappings_cas_backends_cas_backend", DROP CONSTRAINT "cas_mappings_organizations_organization", DROP CONSTRAINT "cas_mappings_workflow_runs_workflow_run", ADD CONSTRAINT "cas_mappings_cas_backends_cas_backend" FOREIGN KEY ("cas_mapping_cas_backend") REFERENCES "cas_backends" ("id") ON UPDATE NO ACTION ON DELETE CASCADE, ADD CONSTRAINT "cas_mappings_organizations_organization" FOREIGN KEY ("cas_mapping_organization") REFERENCES "organizations" ("id") ON UPDATE NO ACTION ON DELETE CASCADE, ADD CONSTRAINT "cas_mappings_workflow_runs_workflow_run" FOREIGN KEY ("cas_mapping_workflow_run") REFERENCES "workflow_runs" ("id") ON UPDATE NO ACTION ON DELETE CASCADE; +-- Modify "org_invitations" table +ALTER TABLE "org_invitations" DROP CONSTRAINT "org_invitations_organizations_organization", ADD CONSTRAINT "org_invitations_organizations_organization" FOREIGN KEY ("organization_id") REFERENCES "organizations" ("id") ON UPDATE NO ACTION ON DELETE CASCADE; diff --git a/app/controlplane/internal/data/ent/migrate/migrations/atlas.sum b/app/controlplane/internal/data/ent/migrate/migrations/atlas.sum index 1c769d4b2..c76947dbc 100644 --- a/app/controlplane/internal/data/ent/migrate/migrations/atlas.sum +++ b/app/controlplane/internal/data/ent/migrate/migrations/atlas.sum @@ -1,4 +1,4 @@ -h1:umLlSIQCvc7uyWfzCSY6x/ZzSF4Bm5/ahIM7HN5y1b8= +h1:5aUIvgmC3yamqOydvpGyxXZrwkoXCMOmXpk3tKjU0wc= 20230706165452_init-schema.sql h1:VvqbNFEQnCvUVyj2iDYVQQxDM0+sSXqocpt/5H64k8M= 20230710111950-cas-backend.sql h1:A8iBuSzZIEbdsv9ipBtscZQuaBp3V5/VMw7eZH6GX+g= 20230712094107-cas-backends-workflow-runs.sql h1:a5rzxpVGyd56nLRSsKrmCFc9sebg65RWzLghKHh5xvI= @@ -10,3 +10,4 @@ h1:umLlSIQCvc7uyWfzCSY6x/ZzSF4Bm5/ahIM7HN5y1b8= 20230905084357.sql h1:VNLRcY8vRDq5WoHv6JqBMr8HCkxLxr0LFWQzvqVRTYk= 20230914221336.sql h1:MCsBIxQ6Ow1BEhCNEF0QfAkUJxPSPxJ4l5DyAOuKLlc= 20231031124431.sql h1:HxWLbK4otq1uvGWKqngAHcOL+8G+qHbFnhRfLZCboBQ= +20231108214833.sql h1:FWxUM9xcTv2Lt6YoR9zWhhcEIQl9dHswfd/P9dAKhWk= diff --git a/app/controlplane/internal/data/ent/migrate/schema.go b/app/controlplane/internal/data/ent/migrate/schema.go index 6fae33bd9..5af04d46e 100644 --- a/app/controlplane/internal/data/ent/migrate/schema.go +++ b/app/controlplane/internal/data/ent/migrate/schema.go @@ -56,19 +56,19 @@ var ( Symbol: "cas_mappings_cas_backends_cas_backend", Columns: []*schema.Column{CasMappingsColumns[3]}, RefColumns: []*schema.Column{CasBackendsColumns[0]}, - OnDelete: schema.NoAction, + OnDelete: schema.Cascade, }, { Symbol: "cas_mappings_workflow_runs_workflow_run", Columns: []*schema.Column{CasMappingsColumns[4]}, RefColumns: []*schema.Column{WorkflowRunsColumns[0]}, - OnDelete: schema.SetNull, + OnDelete: schema.Cascade, }, { Symbol: "cas_mappings_organizations_organization", Columns: []*schema.Column{CasMappingsColumns[5]}, RefColumns: []*schema.Column{OrganizationsColumns[0]}, - OnDelete: schema.NoAction, + OnDelete: schema.Cascade, }, }, Indexes: []*schema.Index{ @@ -189,7 +189,7 @@ var ( Symbol: "org_invitations_organizations_organization", Columns: []*schema.Column{OrgInvitationsColumns[5]}, RefColumns: []*schema.Column{OrganizationsColumns[0]}, - OnDelete: schema.NoAction, + OnDelete: schema.Cascade, }, { Symbol: "org_invitations_users_sender", diff --git a/app/controlplane/internal/data/ent/schema/casmapping.go b/app/controlplane/internal/data/ent/schema/casmapping.go index 8aca3f4ea..9592fe111 100644 --- a/app/controlplane/internal/data/ent/schema/casmapping.go +++ b/app/controlplane/internal/data/ent/schema/casmapping.go @@ -44,9 +44,9 @@ func (CASMapping) Fields() []ent.Field { func (CASMapping) Edges() []ent.Edge { return []ent.Edge{ - edge.To("cas_backend", CASBackend.Type).Unique().Required().Immutable(), - edge.To("workflow_run", WorkflowRun.Type).Unique().Immutable(), - edge.To("organization", Organization.Type).Unique().Required().Immutable(), + edge.To("cas_backend", CASBackend.Type).Unique().Required().Immutable().Annotations(entsql.Annotation{OnDelete: entsql.Cascade}), + edge.To("workflow_run", WorkflowRun.Type).Unique().Immutable().Annotations(entsql.Annotation{OnDelete: entsql.Cascade}), + edge.To("organization", Organization.Type).Unique().Required().Immutable().Annotations(entsql.Annotation{OnDelete: entsql.Cascade}), } } diff --git a/app/controlplane/internal/data/ent/schema/orginvitation.go b/app/controlplane/internal/data/ent/schema/orginvitation.go index 7535cf630..69acfdfd7 100644 --- a/app/controlplane/internal/data/ent/schema/orginvitation.go +++ b/app/controlplane/internal/data/ent/schema/orginvitation.go @@ -51,7 +51,7 @@ func (OrgInvitation) Fields() []ent.Field { func (OrgInvitation) Edges() []ent.Edge { return []ent.Edge{ - edge.To("organization", Organization.Type).Unique().Required().Field("organization_id"), + edge.To("organization", Organization.Type).Unique().Required().Field("organization_id").Annotations(entsql.Annotation{OnDelete: entsql.Cascade}), edge.To("sender", User.Type).Unique().Required().Field("sender_id"), } }