From 3ac19d5274a6f41572c0d31d2d8515c31bc44abb Mon Sep 17 00:00:00 2001 From: Javier Rodriguez Date: Tue, 7 Oct 2025 17:46:45 +0200 Subject: [PATCH 1/2] fix(projectversion): Populate project versions that have missing releasedAt timestamp Signed-off-by: Javier Rodriguez --- .../ent/migrate/migrations/20251007154203.sql | 51 +++++++++++++++++++ .../pkg/data/ent/migrate/migrations/atlas.sum | 3 +- 2 files changed, 53 insertions(+), 1 deletion(-) create mode 100644 app/controlplane/pkg/data/ent/migrate/migrations/20251007154203.sql diff --git a/app/controlplane/pkg/data/ent/migrate/migrations/20251007154203.sql b/app/controlplane/pkg/data/ent/migrate/migrations/20251007154203.sql new file mode 100644 index 000000000..7eae9b4bd --- /dev/null +++ b/app/controlplane/pkg/data/ent/migrate/migrations/20251007154203.sql @@ -0,0 +1,51 @@ +-- Backfill released_at field for released project versions +-- This migration populates the released_at timestamp for project versions +-- that are marked as released (prerelease = false) but don't have a released_at timestamp + +DO $$ +DECLARE + batch_size INTEGER := 100; + total_remaining INTEGER := 0; + total_updated INTEGER := 0; +BEGIN + -- Get initial count of project versions that need updating + -- (those that are released but don't have released_at set) + SELECT COUNT(*) + INTO total_remaining + FROM project_versions + WHERE prerelease = false + AND released_at IS NULL + AND deleted_at IS NULL; + + -- Loop until no more rows remain + WHILE total_remaining > 0 LOOP + -- Update a batch of project versions + -- Set released_at to updated_at as a reasonable default + WITH updated AS ( + UPDATE project_versions + SET released_at = updated_at + WHERE id IN ( + SELECT id + FROM project_versions + WHERE prerelease = false + AND released_at IS NULL + AND deleted_at IS NULL + LIMIT batch_size + ) + RETURNING id + ) + SELECT COUNT(*) INTO batch_size FROM updated; + + total_updated := total_updated + batch_size; + + -- Update the remaining count + SELECT COUNT(*) + INTO total_remaining + FROM project_versions + WHERE prerelease = false + AND released_at IS NULL + AND deleted_at IS NULL; + + END LOOP; + +END $$; diff --git a/app/controlplane/pkg/data/ent/migrate/migrations/atlas.sum b/app/controlplane/pkg/data/ent/migrate/migrations/atlas.sum index e0f184c23..ee817e8e2 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:SbJMyd1Na23ALCFwTq0rcVW1zSPsD4bVBvBuO1xOfuA= +h1:jpJxke4/MI0XZLDqZxOJ0uCOJzZ64REfLhboLQMnYMw= 20230706165452_init-schema.sql h1:VvqbNFEQnCvUVyj2iDYVQQxDM0+sSXqocpt/5H64k8M= 20230710111950-cas-backend.sql h1:A8iBuSzZIEbdsv9ipBtscZQuaBp3V5/VMw7eZH6GX+g= 20230712094107-cas-backends-workflow-runs.sql h1:a5rzxpVGyd56nLRSsKrmCFc9sebg65RWzLghKHh5xvI= @@ -115,3 +115,4 @@ h1:SbJMyd1Na23ALCFwTq0rcVW1zSPsD4bVBvBuO1xOfuA= 20250908160222.sql h1:bNjptbt2xPpSXqa4eVuWkMnovHt9LMkiakoGrFGZJ0g= 20251001215533.sql h1:+IdTm9OSW1r5nDH1fX2hpia/q0UzklPrDy3SDN3S0dg= 20251001215625.sql h1:adcp5r8CoL/JCfNgNZxBvY5pczlEHFH/IX64g/ji/4s= +20251007154203.sql h1:3znFD0ZqhcRqXI1+BF92gJV62JoxByT3RP3nVkqQ+wc= From 87a78ec0d74698da1cdb34a68a4d39d21f567f7c Mon Sep 17 00:00:00 2001 From: Javier Rodriguez Date: Wed, 8 Oct 2025 08:01:41 +0200 Subject: [PATCH 2/2] use created_at instead of updated_at Signed-off-by: Javier Rodriguez --- .../pkg/data/ent/migrate/migrations/20251007154203.sql | 4 ++-- app/controlplane/pkg/data/ent/migrate/migrations/atlas.sum | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/app/controlplane/pkg/data/ent/migrate/migrations/20251007154203.sql b/app/controlplane/pkg/data/ent/migrate/migrations/20251007154203.sql index 7eae9b4bd..aa8871bf3 100644 --- a/app/controlplane/pkg/data/ent/migrate/migrations/20251007154203.sql +++ b/app/controlplane/pkg/data/ent/migrate/migrations/20251007154203.sql @@ -20,10 +20,10 @@ BEGIN -- Loop until no more rows remain WHILE total_remaining > 0 LOOP -- Update a batch of project versions - -- Set released_at to updated_at as a reasonable default + -- Set released_at to created_at as a reasonable default WITH updated AS ( UPDATE project_versions - SET released_at = updated_at + SET released_at = created_at WHERE id IN ( SELECT id FROM project_versions diff --git a/app/controlplane/pkg/data/ent/migrate/migrations/atlas.sum b/app/controlplane/pkg/data/ent/migrate/migrations/atlas.sum index ee817e8e2..78d02431d 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:jpJxke4/MI0XZLDqZxOJ0uCOJzZ64REfLhboLQMnYMw= +h1:kHHOXwsUSBDWcPMgT0oP6T775JumT5LvJuzdq65oAzE= 20230706165452_init-schema.sql h1:VvqbNFEQnCvUVyj2iDYVQQxDM0+sSXqocpt/5H64k8M= 20230710111950-cas-backend.sql h1:A8iBuSzZIEbdsv9ipBtscZQuaBp3V5/VMw7eZH6GX+g= 20230712094107-cas-backends-workflow-runs.sql h1:a5rzxpVGyd56nLRSsKrmCFc9sebg65RWzLghKHh5xvI= @@ -115,4 +115,4 @@ h1:jpJxke4/MI0XZLDqZxOJ0uCOJzZ64REfLhboLQMnYMw= 20250908160222.sql h1:bNjptbt2xPpSXqa4eVuWkMnovHt9LMkiakoGrFGZJ0g= 20251001215533.sql h1:+IdTm9OSW1r5nDH1fX2hpia/q0UzklPrDy3SDN3S0dg= 20251001215625.sql h1:adcp5r8CoL/JCfNgNZxBvY5pczlEHFH/IX64g/ji/4s= -20251007154203.sql h1:3znFD0ZqhcRqXI1+BF92gJV62JoxByT3RP3nVkqQ+wc= +20251007154203.sql h1:gRPipCNWs439gStSXVDxoSLqTw4SUPMiOe5fK1Y5V1Q=