From 9bcff30dee41611257676f6a717afb91722e4ae4 Mon Sep 17 00:00:00 2001 From: Cian Johnston Date: Mon, 18 Sep 2023 11:07:54 +0100 Subject: [PATCH] fix(coderd/database): migrate workspaces.last_used_at to timestamptz (#9699) --- coderd/database/dump.sql | 2 +- .../000155_workspaces_last_used_at_timestamptz.down.sql | 6 ++++++ .../000155_workspaces_last_used_at_timestamptz.up.sql | 6 ++++++ coderd/workspaces_test.go | 4 ---- enterprise/coderd/templates_test.go | 5 ----- 5 files changed, 13 insertions(+), 10 deletions(-) create mode 100644 coderd/database/migrations/000155_workspaces_last_used_at_timestamptz.down.sql create mode 100644 coderd/database/migrations/000155_workspaces_last_used_at_timestamptz.up.sql diff --git a/coderd/database/dump.sql b/coderd/database/dump.sql index 3ee0ac7e19..995fd93739 100644 --- a/coderd/database/dump.sql +++ b/coderd/database/dump.sql @@ -1046,7 +1046,7 @@ CREATE TABLE workspaces ( name character varying(64) NOT NULL, autostart_schedule text, ttl bigint, - last_used_at timestamp without time zone DEFAULT '0001-01-01 00:00:00'::timestamp without time zone NOT NULL, + last_used_at timestamp with time zone DEFAULT '0001-01-01 00:00:00+00'::timestamp with time zone NOT NULL, dormant_at timestamp with time zone, deleting_at timestamp with time zone ); diff --git a/coderd/database/migrations/000155_workspaces_last_used_at_timestamptz.down.sql b/coderd/database/migrations/000155_workspaces_last_used_at_timestamptz.down.sql new file mode 100644 index 0000000000..b594014d4b --- /dev/null +++ b/coderd/database/migrations/000155_workspaces_last_used_at_timestamptz.down.sql @@ -0,0 +1,6 @@ +ALTER TABLE ONLY workspaces +ALTER COLUMN last_used_at + SET DATA TYPE timestamp + USING last_used_at::timestamptz AT TIME ZONE 'UTC', +ALTER COLUMN last_used_at + SET DEFAULT '0001-01-01 00:00:00'::timestamp; diff --git a/coderd/database/migrations/000155_workspaces_last_used_at_timestamptz.up.sql b/coderd/database/migrations/000155_workspaces_last_used_at_timestamptz.up.sql new file mode 100644 index 0000000000..644ef947fd --- /dev/null +++ b/coderd/database/migrations/000155_workspaces_last_used_at_timestamptz.up.sql @@ -0,0 +1,6 @@ +ALTER TABLE ONLY workspaces +ALTER COLUMN last_used_at + SET DATA TYPE timestamptz + USING last_used_at::timestamp AT TIME ZONE 'UTC', +ALTER COLUMN last_used_at + SET DEFAULT '0001-01-01 00:00:00+00:00'::timestamptz; diff --git a/coderd/workspaces_test.go b/coderd/workspaces_test.go index 3bf93b7b07..43ca99deb2 100644 --- a/coderd/workspaces_test.go +++ b/coderd/workspaces_test.go @@ -1515,12 +1515,8 @@ func TestWorkspaceFilterManual(t *testing.T) { t.Run("LastUsed", func(t *testing.T) { t.Parallel() - // nolint:gocritic // https://github.com/coder/coder/issues/9682 - db, ps := dbtestutil.NewDB(t, dbtestutil.WithTimezone("UTC")) client, _, api := coderdtest.NewWithAPI(t, &coderdtest.Options{ IncludeProvisionerDaemon: true, - Database: db, - Pubsub: ps, }) user := coderdtest.CreateFirstUser(t, client) authToken := uuid.NewString() diff --git a/enterprise/coderd/templates_test.go b/enterprise/coderd/templates_test.go index 49dff3bd58..ad961368ee 100644 --- a/enterprise/coderd/templates_test.go +++ b/enterprise/coderd/templates_test.go @@ -13,7 +13,6 @@ import ( "github.com/coder/coder/v2/coderd/audit" "github.com/coder/coder/v2/coderd/coderdtest" "github.com/coder/coder/v2/coderd/database" - "github.com/coder/coder/v2/coderd/database/dbtestutil" "github.com/coder/coder/v2/coderd/rbac" "github.com/coder/coder/v2/codersdk" "github.com/coder/coder/v2/cryptorand" @@ -369,14 +368,10 @@ func TestTemplates(t *testing.T) { t.Run("UpdateLastUsedAt", func(t *testing.T) { t.Parallel() - // nolint:gocritic // https://github.com/coder/coder/issues/9682 - db, ps := dbtestutil.NewDB(t, dbtestutil.WithTimezone("UTC")) ctx := testutil.Context(t, testutil.WaitMedium) client, user := coderdenttest.New(t, &coderdenttest.Options{ Options: &coderdtest.Options{ IncludeProvisionerDaemon: true, - Database: db, - Pubsub: ps, }, LicenseOptions: &coderdenttest.LicenseOptions{ Features: license.Features{