Changeset 0.8.3 (#46)
This commit is contained in:
36
server/database/migrations/018_model_visibility.sql
Normal file
36
server/database/migrations/018_model_visibility.sql
Normal file
@@ -0,0 +1,36 @@
|
||||
-- ==========================================
|
||||
-- Migration 018: Model Visibility
|
||||
-- ==========================================
|
||||
-- Replace binary is_enabled with three-state visibility:
|
||||
-- 'enabled' — visible to all users in model selector
|
||||
-- 'disabled' — hidden from everyone
|
||||
-- 'team' — only available to team admins for building presets
|
||||
-- ==========================================
|
||||
|
||||
-- Add new column (idempotent)
|
||||
ALTER TABLE model_configs ADD COLUMN IF NOT EXISTS visibility VARCHAR(10) DEFAULT 'disabled';
|
||||
|
||||
-- Backfill from is_enabled if it still exists
|
||||
DO $$ BEGIN
|
||||
IF EXISTS (
|
||||
SELECT 1 FROM information_schema.columns
|
||||
WHERE table_name = 'model_configs' AND column_name = 'is_enabled'
|
||||
) THEN
|
||||
UPDATE model_configs SET visibility = CASE
|
||||
WHEN is_enabled = true THEN 'enabled'
|
||||
ELSE 'disabled'
|
||||
END;
|
||||
ALTER TABLE model_configs DROP COLUMN is_enabled;
|
||||
END IF;
|
||||
END $$;
|
||||
|
||||
-- Ensure NOT NULL (safe: DEFAULT already covers new rows)
|
||||
UPDATE model_configs SET visibility = 'disabled' WHERE visibility IS NULL;
|
||||
ALTER TABLE model_configs ALTER COLUMN visibility SET NOT NULL;
|
||||
|
||||
-- Constraint (drop first for idempotency)
|
||||
ALTER TABLE model_configs DROP CONSTRAINT IF EXISTS chk_model_visibility;
|
||||
ALTER TABLE model_configs ADD CONSTRAINT chk_model_visibility
|
||||
CHECK (visibility IN ('enabled', 'disabled', 'team'));
|
||||
|
||||
COMMENT ON COLUMN model_configs.visibility IS 'enabled=all users, team=team admin presets only, disabled=hidden';
|
||||
Reference in New Issue
Block a user