27 lines
916 B
MySQL
27 lines
916 B
MySQL
|
|
-- AP-A1-PM-2: Progression graph — join_gate, strand binding, recurring strand
|
||
|
|
|
||
|
|
ALTER TABLE roadmap_items
|
||
|
|
DROP CONSTRAINT IF EXISTS roadmap_items_item_type_check;
|
||
|
|
|
||
|
|
ALTER TABLE roadmap_items
|
||
|
|
ADD CONSTRAINT roadmap_items_item_type_check
|
||
|
|
CHECK (item_type IN (
|
||
|
|
'milestone', 'review_gate', 'maturity_stage', 'work_cycle', 'join_gate'
|
||
|
|
));
|
||
|
|
|
||
|
|
ALTER TABLE roadmap_items
|
||
|
|
ADD COLUMN IF NOT EXISTS strand_project_id UUID NULL
|
||
|
|
REFERENCES projects(id) ON DELETE SET NULL;
|
||
|
|
|
||
|
|
CREATE INDEX IF NOT EXISTS idx_roadmap_items_strand
|
||
|
|
ON roadmap_items(tenant_id, strand_project_id)
|
||
|
|
WHERE strand_project_id IS NOT NULL;
|
||
|
|
|
||
|
|
ALTER TABLE recurring_elements
|
||
|
|
ADD COLUMN IF NOT EXISTS project_id UUID NULL
|
||
|
|
REFERENCES projects(id) ON DELETE SET NULL;
|
||
|
|
|
||
|
|
CREATE INDEX IF NOT EXISTS idx_recurring_elements_project
|
||
|
|
ON recurring_elements(tenant_id, project_id)
|
||
|
|
WHERE project_id IS NOT NULL;
|