27 lines
1.7 KiB
SQL
27 lines
1.7 KiB
SQL
-- Nullable organization/team scope columns are schema reservations only. V1
|
|
-- keeps every object user-scoped and exposes no organization API.
|
|
ALTER TABLE balance_accounts ADD COLUMN IF NOT EXISTS organization_id UUID;
|
|
ALTER TABLE balance_accounts ADD COLUMN IF NOT EXISTS object_scope TEXT NOT NULL DEFAULT 'user';
|
|
ALTER TABLE generation_tasks ADD COLUMN IF NOT EXISTS organization_id UUID;
|
|
ALTER TABLE generation_tasks ADD COLUMN IF NOT EXISTS workspace_owner_id UUID;
|
|
ALTER TABLE generation_tasks ADD COLUMN IF NOT EXISTS object_scope TEXT NOT NULL DEFAULT 'user';
|
|
ALTER TABLE upload_objects ADD COLUMN IF NOT EXISTS organization_id UUID;
|
|
ALTER TABLE upload_objects ADD COLUMN IF NOT EXISTS workspace_owner_id UUID;
|
|
ALTER TABLE upload_objects ADD COLUMN IF NOT EXISTS object_scope TEXT NOT NULL DEFAULT 'user';
|
|
ALTER TABLE assets ADD COLUMN IF NOT EXISTS organization_id UUID;
|
|
ALTER TABLE assets ADD COLUMN IF NOT EXISTS workspace_owner_id UUID;
|
|
ALTER TABLE assets ADD COLUMN IF NOT EXISTS object_scope TEXT NOT NULL DEFAULT 'user';
|
|
ALTER TABLE stored_objects ADD COLUMN IF NOT EXISTS organization_id TEXT;
|
|
ALTER TABLE stored_objects ADD COLUMN IF NOT EXISTS workspace_owner_id TEXT;
|
|
ALTER TABLE stored_objects ADD COLUMN IF NOT EXISTS object_scope TEXT NOT NULL DEFAULT 'user';
|
|
|
|
DO $$
|
|
DECLARE
|
|
table_name TEXT;
|
|
BEGIN
|
|
FOR table_name IN SELECT unnest(ARRAY['balance_accounts', 'generation_tasks', 'upload_objects', 'assets', 'stored_objects']) LOOP
|
|
EXECUTE format('ALTER TABLE %I DROP CONSTRAINT IF EXISTS %I_object_scope_check', table_name, table_name);
|
|
EXECUTE format('ALTER TABLE %I ADD CONSTRAINT %I_object_scope_check CHECK (object_scope IN (''user'', ''organization''))', table_name, table_name);
|
|
END LOOP;
|
|
END $$;
|