Skip to content

Commit 1de0a5d

Browse files
committed
Exclude template active versions
1 parent 611dac1 commit 1de0a5d

File tree

3 files changed

+12
-0
lines changed

3 files changed

+12
-0
lines changed

coderd/database/dbfake/dbfake.go

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5199,10 +5199,14 @@ func (q *FakeQuerier) PruneUnusedTemplateVersions(ctx context.Context, arg datab
51995199
Version: b.TemplateVersionID,
52005200
}
52015201
}
5202+
52025203
usedVersions := make(map[uuid.UUID]bool)
52035204
for _, l := range latest {
52045205
usedVersions[l.Version] = true
52055206
}
5207+
for _, tpl := range q.templates {
5208+
usedVersions[tpl.ActiveVersionID] = true
5209+
}
52065210

52075211
var deleted []uuid.UUID
52085212
for i, v := range q.templateVersions {

coderd/database/queries.sql.go

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

coderd/database/queries/templateversions.sql

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -150,6 +150,8 @@ UPDATE
150150
SET
151151
deleted = true,
152152
updated_at = @updated_at
153+
FROM
154+
(SELECT active_version_id FROM templates WHERE id = @template_id) AS active_version
153155
WHERE
154156
-- Actively used template versions (meaning the latest build is using
155157
-- the version) are never pruned. A "restart" command on the workspace,
@@ -165,6 +167,8 @@ WHERE
165167
workspace_builds
166168
ORDER BY build_number DESC
167169
)
170+
-- Also never delete the active template version
171+
AND template_versions.id != ANY(active_version)
168172
-- Ignore already deleted versions.
169173
AND template_versions.deleted = false
170174
-- Scope a prune to a single template.

0 commit comments

Comments
 (0)