Changeset 0.28.0 (#172)
This commit is contained in:
@@ -94,16 +94,26 @@ CREATE INDEX IF NOT EXISTS idx_project_notes_note ON project_notes(note_id);
|
||||
-- =========================================
|
||||
-- CROSS-DOMAIN FK COLUMNS
|
||||
-- =========================================
|
||||
-- Denormalized project_id + workspace_id on channels.
|
||||
-- Deferred FKs: channels.project_id and workspace_id declared in 005
|
||||
-- without FK constraints (referenced tables didn't exist yet).
|
||||
|
||||
ALTER TABLE channels
|
||||
ADD COLUMN IF NOT EXISTS project_id UUID REFERENCES projects(id) ON DELETE SET NULL;
|
||||
DO $$ BEGIN
|
||||
IF NOT EXISTS (
|
||||
SELECT 1 FROM pg_constraint WHERE conname = 'fk_channels_project'
|
||||
) THEN
|
||||
ALTER TABLE channels ADD CONSTRAINT fk_channels_project
|
||||
FOREIGN KEY (project_id) REFERENCES projects(id) ON DELETE SET NULL;
|
||||
END IF;
|
||||
END $$;
|
||||
|
||||
ALTER TABLE channels
|
||||
ADD COLUMN IF NOT EXISTS workspace_id UUID REFERENCES workspaces(id) ON DELETE SET NULL;
|
||||
|
||||
CREATE INDEX IF NOT EXISTS idx_channels_project ON channels(project_id) WHERE project_id IS NOT NULL;
|
||||
CREATE INDEX IF NOT EXISTS idx_channels_workspace ON channels(workspace_id) WHERE workspace_id IS NOT NULL;
|
||||
DO $$ BEGIN
|
||||
IF NOT EXISTS (
|
||||
SELECT 1 FROM pg_constraint WHERE conname = 'fk_channels_workspace'
|
||||
) THEN
|
||||
ALTER TABLE channels ADD CONSTRAINT fk_channels_workspace
|
||||
FOREIGN KEY (workspace_id) REFERENCES workspaces(id) ON DELETE SET NULL;
|
||||
END IF;
|
||||
END $$;
|
||||
|
||||
|
||||
-- =========================================
|
||||
|
||||
Reference in New Issue
Block a user