Skip to content

Commit b4d68e0

Browse files
committed
Miscellaneous database cleanup
Here, some miscellaneous database cleanup that we've been tracking for a while. Nothing here is worth sending out by itself, but the next time we do a database migration for something else, we can bundle these changes in and send them out for free. Fixes #874, #875, and #1012.
1 parent ef2048a commit b4d68e0

24 files changed

+230
-233
lines changed

riverdriver/river_driver_interface.go

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -872,8 +872,10 @@ func MigrationLineMainTruncateTables(version int) []string {
872872
return []string{"river_job", "river_leader"}
873873
case 4:
874874
return []string{"river_job", "river_leader", "river_queue"}
875+
case 5, 6:
876+
return []string{"river_job", "river_leader", "river_queue", "river_client", "river_client_queue"}
875877
}
876878

877-
// 0 (zero value), 5, 6
878-
return []string{"river_job", "river_leader", "river_queue", "river_client", "river_client_queue"}
879+
// 0 (zero value), 7
880+
return []string{"river_job", "river_leader", "river_queue"}
879881
}

riverdriver/riverdatabasesql/internal/dbsqlc/models.go

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

riverdriver/riverdatabasesql/internal/dbsqlc/sqlc.yaml

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,17 +3,13 @@ sql:
33
- engine: "postgresql"
44
queries:
55
- ../../../riverpgxv5/internal/dbsqlc/pg_misc.sql
6-
- ../../../riverpgxv5/internal/dbsqlc/river_client.sql
7-
- ../../../riverpgxv5/internal/dbsqlc/river_client_queue.sql
86
- ../../../riverpgxv5/internal/dbsqlc/river_job.sql
97
- ../../../riverpgxv5/internal/dbsqlc/river_leader.sql
108
- ../../../riverpgxv5/internal/dbsqlc/river_migration.sql
119
- ../../../riverpgxv5/internal/dbsqlc/river_queue.sql
1210
- ../../../riverpgxv5/internal/dbsqlc/schema.sql
1311
schema:
1412
- ../../../riverpgxv5/internal/dbsqlc/pg_misc.sql
15-
- ../../../riverpgxv5/internal/dbsqlc/river_client.sql
16-
- ../../../riverpgxv5/internal/dbsqlc/river_client_queue.sql
1713
- ../../../riverpgxv5/internal/dbsqlc/river_job.sql
1814
- ../../../riverpgxv5/internal/dbsqlc/river_leader.sql
1915
- ../../../riverpgxv5/internal/dbsqlc/river_migration.sql
Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
--
2+
-- Add back unused tables `river_client` and `river_client_queue`.
3+
--
4+
5+
CREATE UNLOGGED TABLE /* TEMPLATE: schema */river_client (
6+
id text PRIMARY KEY NOT NULL,
7+
created_at timestamptz NOT NULL DEFAULT now(),
8+
metadata jsonb NOT NULL DEFAULT '{}',
9+
paused_at timestamptz,
10+
updated_at timestamptz NOT NULL,
11+
CONSTRAINT name_length CHECK (char_length(id) > 0 AND char_length(id) < 128)
12+
);
13+
14+
CREATE UNLOGGED TABLE /* TEMPLATE: schema */river_client_queue (
15+
river_client_id text NOT NULL REFERENCES /* TEMPLATE: schema */river_client (id) ON DELETE CASCADE,
16+
name text NOT NULL,
17+
created_at timestamptz NOT NULL DEFAULT now(),
18+
max_workers bigint NOT NULL DEFAULT 0,
19+
metadata jsonb NOT NULL DEFAULT '{}',
20+
num_jobs_completed bigint NOT NULL DEFAULT 0,
21+
num_jobs_running bigint NOT NULL DEFAULT 0,
22+
updated_at timestamptz NOT NULL,
23+
PRIMARY KEY (river_client_id, name),
24+
CONSTRAINT name_length CHECK (char_length(name) > 0 AND char_length(name) < 128),
25+
CONSTRAINT num_jobs_completed_zero_or_positive CHECK (num_jobs_completed >= 0),
26+
CONSTRAINT num_jobs_running_zero_or_positive CHECK (num_jobs_running >= 0)
27+
);
28+
29+
--
30+
-- Revert addition of `DEFAULT 25` to `river_job.max_attempts`.
31+
--
32+
33+
ALTER TABLE /* TEMPLATE: schema */river_job
34+
ALTER COLUMN max_attempts DROP DEFAULT;
35+
36+
--
37+
-- Changes `river_queue.updated_at` to revert the default of `CURRENT_TIMESTAMP`.
38+
--
39+
40+
ALTER TABLE /* TEMPLATE: schema */river_queue
41+
ALTER COLUMN updated_at DROP DEFAULT;
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
--
2+
-- Drop unused tables `river_client` and `river_client_queue`.
3+
--
4+
5+
DROP TABLE /* TEMPLATE: schema */river_client_queue;
6+
DROP TABLE /* TEMPLATE: schema */river_client;
7+
8+
--
9+
-- Adds `DEFAULT 25` to `river_job.max_attempts`.
10+
--
11+
12+
ALTER TABLE /* TEMPLATE: schema */river_job
13+
ALTER COLUMN max_attempts SET DEFAULT 25;
14+
15+
--
16+
-- Changes `river_queue.updated_at` to have a default of `CURRENT_TIMESTAMP`.
17+
--
18+
19+
ALTER TABLE /* TEMPLATE: schema */river_queue
20+
ALTER COLUMN updated_at SET DEFAULT CURRENT_TIMESTAMP;

riverdriver/riverdrivertest/riverdrivertest.go

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -108,7 +108,9 @@ func Exercise[TTx any](ctx context.Context, t *testing.T,
108108
driver.GetMigrationTruncateTables(riverdriver.MigrationLineMain, 5))
109109
require.Equal(t, []string{"river_job", "river_leader", "river_queue", "river_client", "river_client_queue"},
110110
driver.GetMigrationTruncateTables(riverdriver.MigrationLineMain, 6))
111-
require.Equal(t, []string{"river_job", "river_leader", "river_queue", "river_client", "river_client_queue"},
111+
require.Equal(t, []string{"river_job", "river_leader", "river_queue"},
112+
driver.GetMigrationTruncateTables(riverdriver.MigrationLineMain, 7))
113+
require.Equal(t, []string{"river_job", "river_leader", "river_queue"},
112114
driver.GetMigrationTruncateTables(riverdriver.MigrationLineMain, 0))
113115
})
114116
})

riverdriver/riverpgxv5/internal/dbsqlc/models.go

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

riverdriver/riverpgxv5/internal/dbsqlc/river_client.sql

Lines changed: 0 additions & 8 deletions
This file was deleted.

riverdriver/riverpgxv5/internal/dbsqlc/river_client.sql.go

Lines changed: 0 additions & 53 deletions
This file was deleted.

riverdriver/riverpgxv5/internal/dbsqlc/river_client_queue.sql

Lines changed: 0 additions & 14 deletions
This file was deleted.

0 commit comments

Comments
 (0)