mirror of
https://github.com/coder/coder.git
synced 2025-07-15 22:20:27 +00:00
Renumber migrations
This commit is contained in:
@ -0,0 +1,52 @@
|
||||
-- TODO (sasswart): add IF NOT EXISTS and other clauses to make the migration more robust
|
||||
CREATE TABLE template_version_presets
|
||||
(
|
||||
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
|
||||
template_version_id UUID NOT NULL,
|
||||
name TEXT NOT NULL,
|
||||
created_at TIMESTAMP WITH TIME ZONE NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
-- TODO (sasswart): Will auditing have any relevance to presets?
|
||||
FOREIGN KEY (template_version_id) REFERENCES template_versions (id) ON DELETE CASCADE
|
||||
);
|
||||
|
||||
CREATE TABLE template_version_preset_parameters
|
||||
(
|
||||
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
|
||||
template_version_preset_id UUID NOT NULL,
|
||||
name TEXT NOT NULL,
|
||||
-- TODO (sasswart): would it be beneficial to allow presets to still offer a choice for values?
|
||||
-- This would allow an operator to avoid having to create many similar templates where only one or
|
||||
-- a few values are different.
|
||||
value TEXT NOT NULL,
|
||||
FOREIGN KEY (template_version_preset_id) REFERENCES template_version_presets (id) ON DELETE CASCADE
|
||||
);
|
||||
|
||||
ALTER TABLE workspace_builds
|
||||
ADD COLUMN template_version_preset_id UUID NULL;
|
||||
|
||||
ALTER TABLE workspace_builds
|
||||
ADD CONSTRAINT workspace_builds_template_version_preset_id_fkey
|
||||
FOREIGN KEY (template_version_preset_id)
|
||||
REFERENCES template_version_presets (id)
|
||||
-- TODO (sasswart): SET NULL might not be the best choice here. The rest of the hierarchy has ON DELETE CASCADE.
|
||||
-- We don't want CASCADE here, because we don't want to delete the workspace build if the preset is deleted.
|
||||
-- However, do we want to lose record of the preset id for a workspace build?
|
||||
ON DELETE SET NULL;
|
||||
|
||||
-- Recreate the view to include the new column.
|
||||
DROP VIEW workspace_build_with_user;
|
||||
CREATE VIEW
|
||||
workspace_build_with_user
|
||||
AS
|
||||
SELECT
|
||||
workspace_builds.*,
|
||||
coalesce(visible_users.avatar_url, '') AS initiator_by_avatar_url,
|
||||
coalesce(visible_users.username, '') AS initiator_by_username
|
||||
FROM
|
||||
workspace_builds
|
||||
LEFT JOIN
|
||||
visible_users
|
||||
ON
|
||||
workspace_builds.initiator_id = visible_users.id;
|
||||
|
||||
COMMENT ON VIEW workspace_build_with_user IS 'Joins in the username + avatar url of the initiated by user.';
|
Reference in New Issue
Block a user