Skip to content

Commit 9cc1f1f

Browse files
authored
feat(project-version): Change project version model (#2061)
Signed-off-by: Javier Rodriguez <[email protected]>
1 parent 42ec070 commit 9cc1f1f

File tree

12 files changed

+359
-16
lines changed

12 files changed

+359
-16
lines changed
Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
-- Modify "project_versions" table
2+
-- 1. Add column as nullable first (non-blocking)
3+
ALTER TABLE "project_versions" ADD COLUMN "updated_at" timestamptz DEFAULT CURRENT_TIMESTAMP;
4+
5+
-- 2. Update existing records to have updated_at = created_at (in batches to avoid blocking)
6+
DO $$
7+
DECLARE
8+
batch_size INTEGER := 1000;
9+
total_remaining INTEGER := 0;
10+
BEGIN
11+
-- Get initial count of rows that need updating
12+
SELECT COUNT(*) INTO total_remaining FROM "project_versions" WHERE "updated_at" IS NULL;
13+
14+
-- Loop until no more rows remain
15+
WHILE total_remaining > 0 LOOP
16+
WITH cte AS (
17+
SELECT id
18+
FROM "project_versions"
19+
WHERE "updated_at" IS NULL
20+
LIMIT batch_size
21+
)
22+
UPDATE "project_versions"
23+
SET "updated_at" = "created_at"
24+
FROM cte
25+
WHERE "project_versions".id = cte.id;
26+
27+
-- Update the remaining count
28+
SELECT COUNT(*) INTO total_remaining
29+
FROM "project_versions"
30+
WHERE "updated_at" IS NULL;
31+
END LOOP;
32+
END $$;
33+
34+
-- 3. Make column NOT NULL after populating data
35+
ALTER TABLE "project_versions" ALTER COLUMN "updated_at" SET NOT NULL;

app/controlplane/pkg/data/ent/migrate/migrations/atlas.sum

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
h1:GBZY7IXmnC22+1Gcz/8ME0K6lEeIH05EjFDdt4Vp28Q=
1+
h1:qLxkai4DPnyOy4UlNpKeFcYYyyLLf6oLryjWLw1Quwk=
22
20230706165452_init-schema.sql h1:VvqbNFEQnCvUVyj2iDYVQQxDM0+sSXqocpt/5H64k8M=
33
20230710111950-cas-backend.sql h1:A8iBuSzZIEbdsv9ipBtscZQuaBp3V5/VMw7eZH6GX+g=
44
20230712094107-cas-backends-workflow-runs.sql h1:a5rzxpVGyd56nLRSsKrmCFc9sebg65RWzLghKHh5xvI=
@@ -83,3 +83,4 @@ h1:GBZY7IXmnC22+1Gcz/8ME0K6lEeIH05EjFDdt4Vp28Q=
8383
20250411122516.sql h1:OyL+DBJQyf+QYMQ8+6763c63MULo0roe8kC0niidCbk=
8484
20250519093818.sql h1:/MAMqhxqATZoyBpeZMd4aZ8bbRJmFhE3g+6vGKraHJE=
8585
20250519183708.sql h1:AwvibI4wT8g5MnSYTrtuIq1Fii5S4e6mJOcRYunBSzU=
86+
20250521063658.sql h1:AMvqnFLM1em17QsPDGWH0Y2tQAFVIF+rRw2PkqbNJqc=

app/controlplane/pkg/data/ent/migrate/schema.go

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -343,6 +343,7 @@ var (
343343
{Name: "id", Type: field.TypeUUID, Unique: true},
344344
{Name: "version", Type: field.TypeString, Default: ""},
345345
{Name: "created_at", Type: field.TypeTime, Default: "CURRENT_TIMESTAMP"},
346+
{Name: "updated_at", Type: field.TypeTime, Default: "CURRENT_TIMESTAMP"},
346347
{Name: "deleted_at", Type: field.TypeTime, Nullable: true},
347348
{Name: "prerelease", Type: field.TypeBool, Default: true},
348349
{Name: "workflow_run_count", Type: field.TypeInt, Default: 0},
@@ -358,7 +359,7 @@ var (
358359
ForeignKeys: []*schema.ForeignKey{
359360
{
360361
Symbol: "project_versions_projects_versions",
361-
Columns: []*schema.Column{ProjectVersionsColumns[8]},
362+
Columns: []*schema.Column{ProjectVersionsColumns[9]},
362363
RefColumns: []*schema.Column{ProjectsColumns[0]},
363364
OnDelete: schema.Cascade,
364365
},
@@ -367,7 +368,7 @@ var (
367368
{
368369
Name: "projectversion_version_project_id",
369370
Unique: true,
370-
Columns: []*schema.Column{ProjectVersionsColumns[1], ProjectVersionsColumns[8]},
371+
Columns: []*schema.Column{ProjectVersionsColumns[1], ProjectVersionsColumns[9]},
371372
Annotation: &entsql.IndexAnnotation{
372373
Where: "deleted_at IS NULL",
373374
},

app/controlplane/pkg/data/ent/mutation.go

Lines changed: 55 additions & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

app/controlplane/pkg/data/ent/projectversion.go

Lines changed: 12 additions & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

app/controlplane/pkg/data/ent/projectversion/projectversion.go

Lines changed: 10 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

app/controlplane/pkg/data/ent/projectversion/where.go

Lines changed: 45 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)