diff --git a/app/controlplane/pkg/data/ent/migrate/migrations/20241011075107.sql b/app/controlplane/pkg/data/ent/migrate/migrations/20241011075107.sql new file mode 100644 index 000000000..9303afeb9 --- /dev/null +++ b/app/controlplane/pkg/data/ent/migrate/migrations/20241011075107.sql @@ -0,0 +1,2 @@ +-- Create index "workflow_name_project_organization_id" to table: "workflows" +CREATE UNIQUE INDEX "workflow_name_project_organization_id" ON "workflows" ("name", "project", "organization_id") WHERE (deleted_at IS NULL); diff --git a/app/controlplane/pkg/data/ent/migrate/migrations/atlas.sum b/app/controlplane/pkg/data/ent/migrate/migrations/atlas.sum index 99240feb4..1924783e8 100644 --- a/app/controlplane/pkg/data/ent/migrate/migrations/atlas.sum +++ b/app/controlplane/pkg/data/ent/migrate/migrations/atlas.sum @@ -1,4 +1,4 @@ -h1:/GVJXP6pdXbjL89PpRrAKyL9sg5T8mS0Vnrb6QjoQNg= +h1:ZKwKoug7zWvV7LPmmO8BJWnL21uzs9lj+6h4H99MDBs= 20230706165452_init-schema.sql h1:VvqbNFEQnCvUVyj2iDYVQQxDM0+sSXqocpt/5H64k8M= 20230710111950-cas-backend.sql h1:A8iBuSzZIEbdsv9ipBtscZQuaBp3V5/VMw7eZH6GX+g= 20230712094107-cas-backends-workflow-runs.sql h1:a5rzxpVGyd56nLRSsKrmCFc9sebg65RWzLghKHh5xvI= @@ -43,3 +43,4 @@ h1:/GVJXP6pdXbjL89PpRrAKyL9sg5T8mS0Vnrb6QjoQNg= 20240819104758.sql h1:bpAwdQakxcXNy5ZfmA/tAzx+lIQBPs2LWs6wk2QCPTw= 20240827110459.sql h1:opB+0UvGuYIyi1B3BEyh06HNzon3V867QHsc8yrsTuE= 20240920193509.sql h1:FREEMo5oD//cf+6iq72YgbVJgXN/fuy7DB/jvx6NgKM= +20241011075107.sql h1:8UrMNKA0QAKkhfdetnNCZfI7DBOTKLLxsqqH+c8VhdU= diff --git a/app/controlplane/pkg/data/ent/migrate/schema.go b/app/controlplane/pkg/data/ent/migrate/schema.go index 523ddfaa5..6391b4835 100644 --- a/app/controlplane/pkg/data/ent/migrate/schema.go +++ b/app/controlplane/pkg/data/ent/migrate/schema.go @@ -362,6 +362,14 @@ var ( }, }, Indexes: []*schema.Index{ + { + Name: "workflow_name_project_organization_id", + Unique: true, + Columns: []*schema.Column{WorkflowsColumns[1], WorkflowsColumns[2], WorkflowsColumns[9]}, + Annotation: &entsql.IndexAnnotation{ + Where: "deleted_at IS NULL", + }, + }, { Name: "workflow_name_organization_id", Unique: true, diff --git a/app/controlplane/pkg/data/ent/schema/workflow.go b/app/controlplane/pkg/data/ent/schema/workflow.go index 5b166f776..81f9ae1a7 100644 --- a/app/controlplane/pkg/data/ent/schema/workflow.go +++ b/app/controlplane/pkg/data/ent/schema/workflow.go @@ -70,6 +70,10 @@ func (Workflow) Edges() []ent.Edge { func (Workflow) Indexes() []ent.Index { return []ent.Index{ + index.Fields("name", "project").Edges("organization").Unique().Annotations( + entsql.IndexWhere("deleted_at IS NULL"), + ), + // DEPRECATED, will be replaced by the above index // names are unique within a organization and affects only to non-deleted items index.Fields("name").Edges("organization").Unique().Annotations( entsql.IndexWhere("deleted_at IS NULL"),