Some checks failed
CI / build-and-test (push) Failing after -31m34s
* Corrected default values for various fields in SQL schema * Changed tags field type from text[] to text[] with proper default * Updated JSONB default values to remove unnecessary quotes
5492 lines
133 KiB
SQL
5492 lines
133 KiB
SQL
-- PostgreSQL Database Schema
|
|
-- Database: database
|
|
-- Generated by RelSpec
|
|
|
|
-- Sequences for schema: public
|
|
CREATE SEQUENCE IF NOT EXISTS public.identity_thoughts_id
|
|
INCREMENT 1
|
|
MINVALUE 1
|
|
MAXVALUE 9223372036854775807
|
|
START 1
|
|
CACHE 1;
|
|
|
|
CREATE SEQUENCE IF NOT EXISTS public.identity_projects_id
|
|
INCREMENT 1
|
|
MINVALUE 1
|
|
MAXVALUE 9223372036854775807
|
|
START 1
|
|
CACHE 1;
|
|
|
|
CREATE SEQUENCE IF NOT EXISTS public.identity_thought_links_id
|
|
INCREMENT 1
|
|
MINVALUE 1
|
|
MAXVALUE 9223372036854775807
|
|
START 1
|
|
CACHE 1;
|
|
|
|
CREATE SEQUENCE IF NOT EXISTS public.identity_embeddings_id
|
|
INCREMENT 1
|
|
MINVALUE 1
|
|
MAXVALUE 9223372036854775807
|
|
START 1
|
|
CACHE 1;
|
|
|
|
CREATE SEQUENCE IF NOT EXISTS public.identity_stored_files_id
|
|
INCREMENT 1
|
|
MINVALUE 1
|
|
MAXVALUE 9223372036854775807
|
|
START 1
|
|
CACHE 1;
|
|
|
|
CREATE SEQUENCE IF NOT EXISTS public.identity_tool_annotations_id
|
|
INCREMENT 1
|
|
MINVALUE 1
|
|
MAXVALUE 9223372036854775807
|
|
START 1
|
|
CACHE 1;
|
|
|
|
CREATE SEQUENCE IF NOT EXISTS public.identity_plan_dependencies_id
|
|
INCREMENT 1
|
|
MINVALUE 1
|
|
MAXVALUE 9223372036854775807
|
|
START 1
|
|
CACHE 1;
|
|
|
|
CREATE SEQUENCE IF NOT EXISTS public.identity_plan_related_plans_id
|
|
INCREMENT 1
|
|
MINVALUE 1
|
|
MAXVALUE 9223372036854775807
|
|
START 1
|
|
CACHE 1;
|
|
|
|
CREATE SEQUENCE IF NOT EXISTS public.identity_plan_skills_id
|
|
INCREMENT 1
|
|
MINVALUE 1
|
|
MAXVALUE 9223372036854775807
|
|
START 1
|
|
CACHE 1;
|
|
|
|
CREATE SEQUENCE IF NOT EXISTS public.identity_plan_guardrails_id
|
|
INCREMENT 1
|
|
MINVALUE 1
|
|
MAXVALUE 9223372036854775807
|
|
START 1
|
|
CACHE 1;
|
|
|
|
CREATE SEQUENCE IF NOT EXISTS public.identity_project_skills_id
|
|
INCREMENT 1
|
|
MINVALUE 1
|
|
MAXVALUE 9223372036854775807
|
|
START 1
|
|
CACHE 1;
|
|
|
|
CREATE SEQUENCE IF NOT EXISTS public.identity_project_guardrails_id
|
|
INCREMENT 1
|
|
MINVALUE 1
|
|
MAXVALUE 9223372036854775807
|
|
START 1
|
|
CACHE 1;
|
|
|
|
-- Tables for schema: public
|
|
CREATE TABLE IF NOT EXISTS public.family_members (
|
|
birth_date date,
|
|
created_at timestamptz NOT NULL DEFAULT now(),
|
|
id uuid NOT NULL DEFAULT gen_random_uuid(),
|
|
name text NOT NULL,
|
|
notes text,
|
|
relationship text
|
|
);
|
|
|
|
CREATE TABLE IF NOT EXISTS public.activities (
|
|
activity_type text,
|
|
created_at timestamptz NOT NULL DEFAULT now(),
|
|
day_of_week text,
|
|
end_date date,
|
|
end_time time,
|
|
family_member_id uuid,
|
|
id uuid NOT NULL DEFAULT gen_random_uuid(),
|
|
location text,
|
|
notes text,
|
|
start_date date,
|
|
start_time time,
|
|
title text NOT NULL
|
|
);
|
|
|
|
CREATE TABLE IF NOT EXISTS public.important_dates (
|
|
created_at timestamptz NOT NULL DEFAULT now(),
|
|
date_value date NOT NULL,
|
|
family_member_id uuid,
|
|
id uuid NOT NULL DEFAULT gen_random_uuid(),
|
|
notes text,
|
|
recurring_yearly boolean NOT NULL DEFAULT false,
|
|
reminder_days_before integer NOT NULL DEFAULT 7,
|
|
title text NOT NULL
|
|
);
|
|
|
|
CREATE TABLE IF NOT EXISTS public.thoughts (
|
|
archived_at timestamptz,
|
|
content text NOT NULL,
|
|
created_at timestamptz DEFAULT now(),
|
|
guid uuid NOT NULL DEFAULT gen_random_uuid(),
|
|
id bigserial NOT NULL,
|
|
metadata jsonb DEFAULT '{}'::jsonb,
|
|
project_id uuid,
|
|
updated_at timestamptz DEFAULT now()
|
|
);
|
|
|
|
CREATE TABLE IF NOT EXISTS public.projects (
|
|
created_at timestamptz DEFAULT now(),
|
|
description text,
|
|
guid uuid NOT NULL DEFAULT gen_random_uuid(),
|
|
id bigserial NOT NULL,
|
|
last_active_at timestamptz DEFAULT now(),
|
|
name text NOT NULL
|
|
);
|
|
|
|
CREATE TABLE IF NOT EXISTS public.thought_links (
|
|
created_at timestamptz DEFAULT now(),
|
|
from_id bigint NOT NULL,
|
|
id serial NOT NULL,
|
|
relation text NOT NULL,
|
|
to_id bigint NOT NULL
|
|
);
|
|
|
|
CREATE TABLE IF NOT EXISTS public.embeddings (
|
|
created_at timestamptz DEFAULT now(),
|
|
dim integer NOT NULL,
|
|
embedding vector NOT NULL,
|
|
guid uuid NOT NULL DEFAULT gen_random_uuid(),
|
|
id bigserial NOT NULL,
|
|
model text NOT NULL,
|
|
thought_id uuid NOT NULL,
|
|
updated_at timestamptz DEFAULT now()
|
|
);
|
|
|
|
CREATE TABLE IF NOT EXISTS public.professional_contacts (
|
|
company text,
|
|
created_at timestamptz NOT NULL DEFAULT now(),
|
|
email text,
|
|
follow_up_date date,
|
|
how_we_met text,
|
|
id uuid NOT NULL DEFAULT gen_random_uuid(),
|
|
last_contacted timestamptz,
|
|
linkedin_url text,
|
|
name text NOT NULL,
|
|
notes text,
|
|
phone text,
|
|
tags text[] NOT NULL DEFAULT '{}',
|
|
title text,
|
|
updated_at timestamptz NOT NULL DEFAULT now()
|
|
);
|
|
|
|
CREATE TABLE IF NOT EXISTS public.contact_interactions (
|
|
contact_id uuid NOT NULL,
|
|
created_at timestamptz NOT NULL DEFAULT now(),
|
|
follow_up_needed boolean NOT NULL DEFAULT false,
|
|
follow_up_notes text,
|
|
id uuid NOT NULL DEFAULT gen_random_uuid(),
|
|
interaction_type text NOT NULL,
|
|
occurred_at timestamptz NOT NULL DEFAULT now(),
|
|
summary text NOT NULL
|
|
);
|
|
|
|
CREATE TABLE IF NOT EXISTS public.opportunities (
|
|
contact_id uuid,
|
|
created_at timestamptz NOT NULL DEFAULT now(),
|
|
description text,
|
|
expected_close_date date,
|
|
id uuid NOT NULL DEFAULT gen_random_uuid(),
|
|
notes text,
|
|
stage text NOT NULL DEFAULT 'identified',
|
|
title text NOT NULL,
|
|
updated_at timestamptz NOT NULL DEFAULT now(),
|
|
value decimal(12,2)
|
|
);
|
|
|
|
CREATE TABLE IF NOT EXISTS public.stored_files (
|
|
content bytea NOT NULL,
|
|
created_at timestamptz NOT NULL DEFAULT now(),
|
|
encoding text NOT NULL DEFAULT 'base64',
|
|
guid uuid NOT NULL DEFAULT gen_random_uuid(),
|
|
id bigserial NOT NULL,
|
|
kind text NOT NULL DEFAULT 'file',
|
|
media_type text NOT NULL,
|
|
name text NOT NULL,
|
|
project_id uuid,
|
|
sha256 text NOT NULL,
|
|
size_bytes bigint NOT NULL,
|
|
thought_id uuid,
|
|
updated_at timestamptz NOT NULL DEFAULT now()
|
|
);
|
|
|
|
CREATE TABLE IF NOT EXISTS public.household_items (
|
|
category text,
|
|
created_at timestamptz NOT NULL DEFAULT now(),
|
|
details jsonb NOT NULL DEFAULT '{}',
|
|
id uuid NOT NULL DEFAULT gen_random_uuid(),
|
|
location text,
|
|
name text NOT NULL,
|
|
notes text,
|
|
updated_at timestamptz NOT NULL DEFAULT now()
|
|
);
|
|
|
|
CREATE TABLE IF NOT EXISTS public.household_vendors (
|
|
created_at timestamptz NOT NULL DEFAULT now(),
|
|
email text,
|
|
id uuid NOT NULL DEFAULT gen_random_uuid(),
|
|
last_used date,
|
|
name text NOT NULL,
|
|
notes text,
|
|
phone text,
|
|
rating integer,
|
|
service_type text,
|
|
website text
|
|
);
|
|
|
|
CREATE TABLE IF NOT EXISTS public.maintenance_tasks (
|
|
category text,
|
|
created_at timestamptz NOT NULL DEFAULT now(),
|
|
frequency_days integer,
|
|
id uuid NOT NULL DEFAULT gen_random_uuid(),
|
|
last_completed timestamptz,
|
|
name text NOT NULL,
|
|
next_due timestamptz,
|
|
notes text,
|
|
priority text NOT NULL DEFAULT 'medium',
|
|
updated_at timestamptz NOT NULL DEFAULT now()
|
|
);
|
|
|
|
CREATE TABLE IF NOT EXISTS public.maintenance_logs (
|
|
completed_at timestamptz NOT NULL DEFAULT now(),
|
|
cost decimal(10,2),
|
|
id uuid NOT NULL DEFAULT gen_random_uuid(),
|
|
next_action text,
|
|
notes text,
|
|
performed_by text,
|
|
task_id uuid NOT NULL
|
|
);
|
|
|
|
CREATE TABLE IF NOT EXISTS public.recipes (
|
|
cook_time_minutes integer,
|
|
created_at timestamptz NOT NULL DEFAULT now(),
|
|
cuisine text,
|
|
id uuid NOT NULL DEFAULT gen_random_uuid(),
|
|
ingredients jsonb NOT NULL DEFAULT '[]',
|
|
instructions jsonb NOT NULL DEFAULT '[]',
|
|
name text NOT NULL,
|
|
notes text,
|
|
prep_time_minutes integer,
|
|
rating integer,
|
|
servings integer,
|
|
tags text[] NOT NULL DEFAULT '{}',
|
|
updated_at timestamptz NOT NULL DEFAULT now()
|
|
);
|
|
|
|
CREATE TABLE IF NOT EXISTS public.meal_plans (
|
|
created_at timestamptz NOT NULL DEFAULT now(),
|
|
custom_meal text,
|
|
day_of_week text NOT NULL,
|
|
id uuid NOT NULL DEFAULT gen_random_uuid(),
|
|
meal_type text NOT NULL,
|
|
notes text,
|
|
recipe_id uuid,
|
|
servings integer,
|
|
week_start date NOT NULL
|
|
);
|
|
|
|
CREATE TABLE IF NOT EXISTS public.shopping_lists (
|
|
created_at timestamptz NOT NULL DEFAULT now(),
|
|
id uuid NOT NULL DEFAULT gen_random_uuid(),
|
|
items jsonb NOT NULL DEFAULT '[]',
|
|
notes text,
|
|
updated_at timestamptz NOT NULL DEFAULT now(),
|
|
week_start date NOT NULL
|
|
);
|
|
|
|
CREATE TABLE IF NOT EXISTS public.chat_histories (
|
|
agent_id text,
|
|
channel text,
|
|
created_at timestamptz NOT NULL DEFAULT now(),
|
|
id uuid NOT NULL DEFAULT gen_random_uuid(),
|
|
messages jsonb NOT NULL DEFAULT '[]',
|
|
metadata jsonb NOT NULL DEFAULT '{}',
|
|
project_id uuid,
|
|
session_id text NOT NULL,
|
|
summary text,
|
|
title text,
|
|
updated_at timestamptz NOT NULL DEFAULT now()
|
|
);
|
|
|
|
CREATE TABLE IF NOT EXISTS public.tool_annotations (
|
|
created_at timestamptz NOT NULL DEFAULT now(),
|
|
id bigserial NOT NULL,
|
|
notes text NOT NULL DEFAULT '',
|
|
tool_name text NOT NULL,
|
|
updated_at timestamptz NOT NULL DEFAULT now()
|
|
);
|
|
|
|
CREATE TABLE IF NOT EXISTS public.learnings (
|
|
action_required boolean NOT NULL DEFAULT false,
|
|
area text NOT NULL DEFAULT 'other',
|
|
category text NOT NULL DEFAULT 'insight',
|
|
confidence text NOT NULL DEFAULT 'hypothesis',
|
|
created_at timestamptz NOT NULL DEFAULT now(),
|
|
details text NOT NULL DEFAULT '',
|
|
duplicate_of_learning_id uuid,
|
|
id uuid NOT NULL DEFAULT gen_random_uuid(),
|
|
priority text NOT NULL DEFAULT 'medium',
|
|
project_id uuid,
|
|
related_skill_id uuid,
|
|
related_thought_id uuid,
|
|
reviewed_at timestamptz,
|
|
reviewed_by text,
|
|
source_ref text,
|
|
source_type text,
|
|
status text NOT NULL DEFAULT 'pending',
|
|
summary text NOT NULL,
|
|
supersedes_learning_id uuid,
|
|
tags text[] NOT NULL DEFAULT '{}',
|
|
updated_at timestamptz NOT NULL DEFAULT now()
|
|
);
|
|
|
|
CREATE TABLE IF NOT EXISTS public.plans (
|
|
completed_at timestamptz,
|
|
created_at timestamptz NOT NULL DEFAULT now(),
|
|
description text NOT NULL DEFAULT '',
|
|
due_date timestamptz,
|
|
id uuid NOT NULL DEFAULT gen_random_uuid(),
|
|
last_reviewed_at timestamptz,
|
|
owner text,
|
|
priority text NOT NULL DEFAULT 'medium',
|
|
project_id uuid,
|
|
reviewed_by text,
|
|
status text NOT NULL DEFAULT 'draft',
|
|
supersedes_plan_id uuid,
|
|
tags text[] NOT NULL DEFAULT '{}',
|
|
title text NOT NULL,
|
|
updated_at timestamptz NOT NULL DEFAULT now()
|
|
);
|
|
|
|
CREATE TABLE IF NOT EXISTS public.plan_dependencies (
|
|
created_at timestamptz NOT NULL DEFAULT now(),
|
|
depends_on_plan_id uuid NOT NULL,
|
|
id serial NOT NULL,
|
|
plan_id uuid NOT NULL
|
|
);
|
|
|
|
CREATE TABLE IF NOT EXISTS public.plan_related_plans (
|
|
created_at timestamptz NOT NULL DEFAULT now(),
|
|
id serial NOT NULL,
|
|
plan_a_id uuid NOT NULL,
|
|
plan_b_id uuid NOT NULL
|
|
);
|
|
|
|
CREATE TABLE IF NOT EXISTS public.plan_skills (
|
|
created_at timestamptz NOT NULL DEFAULT now(),
|
|
id serial NOT NULL,
|
|
plan_id uuid NOT NULL,
|
|
skill_id uuid NOT NULL
|
|
);
|
|
|
|
CREATE TABLE IF NOT EXISTS public.plan_guardrails (
|
|
created_at timestamptz NOT NULL DEFAULT now(),
|
|
guardrail_id uuid NOT NULL,
|
|
id serial NOT NULL,
|
|
plan_id uuid NOT NULL
|
|
);
|
|
|
|
CREATE TABLE IF NOT EXISTS public.agent_skills (
|
|
content text NOT NULL,
|
|
created_at timestamptz NOT NULL DEFAULT now(),
|
|
description text NOT NULL DEFAULT '',
|
|
id uuid NOT NULL DEFAULT gen_random_uuid(),
|
|
name text NOT NULL,
|
|
tags text[] NOT NULL DEFAULT '{}',
|
|
updated_at timestamptz NOT NULL DEFAULT now()
|
|
);
|
|
|
|
CREATE TABLE IF NOT EXISTS public.agent_guardrails (
|
|
content text NOT NULL,
|
|
created_at timestamptz NOT NULL DEFAULT now(),
|
|
description text NOT NULL DEFAULT '',
|
|
id uuid NOT NULL DEFAULT gen_random_uuid(),
|
|
name text NOT NULL,
|
|
severity text NOT NULL DEFAULT 'medium',
|
|
tags text[] NOT NULL DEFAULT '{}',
|
|
updated_at timestamptz NOT NULL DEFAULT now()
|
|
);
|
|
|
|
CREATE TABLE IF NOT EXISTS public.project_skills (
|
|
created_at timestamptz NOT NULL DEFAULT now(),
|
|
id serial NOT NULL,
|
|
project_id uuid NOT NULL,
|
|
skill_id uuid NOT NULL
|
|
);
|
|
|
|
CREATE TABLE IF NOT EXISTS public.project_guardrails (
|
|
created_at timestamptz NOT NULL DEFAULT now(),
|
|
guardrail_id uuid NOT NULL,
|
|
id serial NOT NULL,
|
|
project_id uuid NOT NULL
|
|
);
|
|
|
|
-- Add missing columns for schema: public
|
|
DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.columns
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'family_members'
|
|
AND column_name = 'birth_date'
|
|
) THEN
|
|
ALTER TABLE public.family_members ADD COLUMN birth_date date;
|
|
END IF;
|
|
END;
|
|
$$;
|
|
|
|
DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.columns
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'family_members'
|
|
AND column_name = 'created_at'
|
|
) THEN
|
|
ALTER TABLE public.family_members ADD COLUMN created_at timestamptz NOT NULL DEFAULT now();
|
|
END IF;
|
|
END;
|
|
$$;
|
|
|
|
DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.columns
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'family_members'
|
|
AND column_name = 'id'
|
|
) THEN
|
|
ALTER TABLE public.family_members ADD COLUMN id uuid NOT NULL DEFAULT gen_random_uuid();
|
|
END IF;
|
|
END;
|
|
$$;
|
|
|
|
DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.columns
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'family_members'
|
|
AND column_name = 'name'
|
|
) THEN
|
|
ALTER TABLE public.family_members ADD COLUMN name text NOT NULL;
|
|
END IF;
|
|
END;
|
|
$$;
|
|
|
|
DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.columns
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'family_members'
|
|
AND column_name = 'notes'
|
|
) THEN
|
|
ALTER TABLE public.family_members ADD COLUMN notes text;
|
|
END IF;
|
|
END;
|
|
$$;
|
|
|
|
DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.columns
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'family_members'
|
|
AND column_name = 'relationship'
|
|
) THEN
|
|
ALTER TABLE public.family_members ADD COLUMN relationship text;
|
|
END IF;
|
|
END;
|
|
$$;
|
|
|
|
DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.columns
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'activities'
|
|
AND column_name = 'activity_type'
|
|
) THEN
|
|
ALTER TABLE public.activities ADD COLUMN activity_type text;
|
|
END IF;
|
|
END;
|
|
$$;
|
|
|
|
DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.columns
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'activities'
|
|
AND column_name = 'created_at'
|
|
) THEN
|
|
ALTER TABLE public.activities ADD COLUMN created_at timestamptz NOT NULL DEFAULT now();
|
|
END IF;
|
|
END;
|
|
$$;
|
|
|
|
DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.columns
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'activities'
|
|
AND column_name = 'day_of_week'
|
|
) THEN
|
|
ALTER TABLE public.activities ADD COLUMN day_of_week text;
|
|
END IF;
|
|
END;
|
|
$$;
|
|
|
|
DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.columns
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'activities'
|
|
AND column_name = 'end_date'
|
|
) THEN
|
|
ALTER TABLE public.activities ADD COLUMN end_date date;
|
|
END IF;
|
|
END;
|
|
$$;
|
|
|
|
DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.columns
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'activities'
|
|
AND column_name = 'end_time'
|
|
) THEN
|
|
ALTER TABLE public.activities ADD COLUMN end_time time;
|
|
END IF;
|
|
END;
|
|
$$;
|
|
|
|
DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.columns
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'activities'
|
|
AND column_name = 'family_member_id'
|
|
) THEN
|
|
ALTER TABLE public.activities ADD COLUMN family_member_id uuid;
|
|
END IF;
|
|
END;
|
|
$$;
|
|
|
|
DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.columns
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'activities'
|
|
AND column_name = 'id'
|
|
) THEN
|
|
ALTER TABLE public.activities ADD COLUMN id uuid NOT NULL DEFAULT gen_random_uuid();
|
|
END IF;
|
|
END;
|
|
$$;
|
|
|
|
DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.columns
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'activities'
|
|
AND column_name = 'location'
|
|
) THEN
|
|
ALTER TABLE public.activities ADD COLUMN location text;
|
|
END IF;
|
|
END;
|
|
$$;
|
|
|
|
DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.columns
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'activities'
|
|
AND column_name = 'notes'
|
|
) THEN
|
|
ALTER TABLE public.activities ADD COLUMN notes text;
|
|
END IF;
|
|
END;
|
|
$$;
|
|
|
|
DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.columns
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'activities'
|
|
AND column_name = 'start_date'
|
|
) THEN
|
|
ALTER TABLE public.activities ADD COLUMN start_date date;
|
|
END IF;
|
|
END;
|
|
$$;
|
|
|
|
DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.columns
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'activities'
|
|
AND column_name = 'start_time'
|
|
) THEN
|
|
ALTER TABLE public.activities ADD COLUMN start_time time;
|
|
END IF;
|
|
END;
|
|
$$;
|
|
|
|
DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.columns
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'activities'
|
|
AND column_name = 'title'
|
|
) THEN
|
|
ALTER TABLE public.activities ADD COLUMN title text NOT NULL;
|
|
END IF;
|
|
END;
|
|
$$;
|
|
|
|
DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.columns
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'important_dates'
|
|
AND column_name = 'created_at'
|
|
) THEN
|
|
ALTER TABLE public.important_dates ADD COLUMN created_at timestamptz NOT NULL DEFAULT now();
|
|
END IF;
|
|
END;
|
|
$$;
|
|
|
|
DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.columns
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'important_dates'
|
|
AND column_name = 'date_value'
|
|
) THEN
|
|
ALTER TABLE public.important_dates ADD COLUMN date_value date NOT NULL;
|
|
END IF;
|
|
END;
|
|
$$;
|
|
|
|
DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.columns
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'important_dates'
|
|
AND column_name = 'family_member_id'
|
|
) THEN
|
|
ALTER TABLE public.important_dates ADD COLUMN family_member_id uuid;
|
|
END IF;
|
|
END;
|
|
$$;
|
|
|
|
DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.columns
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'important_dates'
|
|
AND column_name = 'id'
|
|
) THEN
|
|
ALTER TABLE public.important_dates ADD COLUMN id uuid NOT NULL DEFAULT gen_random_uuid();
|
|
END IF;
|
|
END;
|
|
$$;
|
|
|
|
DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.columns
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'important_dates'
|
|
AND column_name = 'notes'
|
|
) THEN
|
|
ALTER TABLE public.important_dates ADD COLUMN notes text;
|
|
END IF;
|
|
END;
|
|
$$;
|
|
|
|
DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.columns
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'important_dates'
|
|
AND column_name = 'recurring_yearly'
|
|
) THEN
|
|
ALTER TABLE public.important_dates ADD COLUMN recurring_yearly boolean NOT NULL DEFAULT false;
|
|
END IF;
|
|
END;
|
|
$$;
|
|
|
|
DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.columns
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'important_dates'
|
|
AND column_name = 'reminder_days_before'
|
|
) THEN
|
|
ALTER TABLE public.important_dates ADD COLUMN reminder_days_before integer NOT NULL DEFAULT 7;
|
|
END IF;
|
|
END;
|
|
$$;
|
|
|
|
DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.columns
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'important_dates'
|
|
AND column_name = 'title'
|
|
) THEN
|
|
ALTER TABLE public.important_dates ADD COLUMN title text NOT NULL;
|
|
END IF;
|
|
END;
|
|
$$;
|
|
|
|
DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.columns
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'thoughts'
|
|
AND column_name = 'archived_at'
|
|
) THEN
|
|
ALTER TABLE public.thoughts ADD COLUMN archived_at timestamptz;
|
|
END IF;
|
|
END;
|
|
$$;
|
|
|
|
DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.columns
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'thoughts'
|
|
AND column_name = 'content'
|
|
) THEN
|
|
ALTER TABLE public.thoughts ADD COLUMN content text NOT NULL;
|
|
END IF;
|
|
END;
|
|
$$;
|
|
|
|
DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.columns
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'thoughts'
|
|
AND column_name = 'created_at'
|
|
) THEN
|
|
ALTER TABLE public.thoughts ADD COLUMN created_at timestamptz DEFAULT now();
|
|
END IF;
|
|
END;
|
|
$$;
|
|
|
|
DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.columns
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'thoughts'
|
|
AND column_name = 'guid'
|
|
) THEN
|
|
ALTER TABLE public.thoughts ADD COLUMN guid uuid NOT NULL DEFAULT gen_random_uuid();
|
|
END IF;
|
|
END;
|
|
$$;
|
|
|
|
DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.columns
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'thoughts'
|
|
AND column_name = 'id'
|
|
) THEN
|
|
ALTER TABLE public.thoughts ADD COLUMN id bigserial NOT NULL;
|
|
END IF;
|
|
END;
|
|
$$;
|
|
|
|
DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.columns
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'thoughts'
|
|
AND column_name = 'metadata'
|
|
) THEN
|
|
ALTER TABLE public.thoughts ADD COLUMN metadata jsonb DEFAULT '{}'::jsonb;
|
|
END IF;
|
|
END;
|
|
$$;
|
|
|
|
DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.columns
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'thoughts'
|
|
AND column_name = 'project_id'
|
|
) THEN
|
|
ALTER TABLE public.thoughts ADD COLUMN project_id uuid;
|
|
END IF;
|
|
END;
|
|
$$;
|
|
|
|
DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.columns
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'thoughts'
|
|
AND column_name = 'updated_at'
|
|
) THEN
|
|
ALTER TABLE public.thoughts ADD COLUMN updated_at timestamptz DEFAULT now();
|
|
END IF;
|
|
END;
|
|
$$;
|
|
|
|
DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.columns
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'projects'
|
|
AND column_name = 'created_at'
|
|
) THEN
|
|
ALTER TABLE public.projects ADD COLUMN created_at timestamptz DEFAULT now();
|
|
END IF;
|
|
END;
|
|
$$;
|
|
|
|
DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.columns
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'projects'
|
|
AND column_name = 'description'
|
|
) THEN
|
|
ALTER TABLE public.projects ADD COLUMN description text;
|
|
END IF;
|
|
END;
|
|
$$;
|
|
|
|
DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.columns
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'projects'
|
|
AND column_name = 'guid'
|
|
) THEN
|
|
ALTER TABLE public.projects ADD COLUMN guid uuid NOT NULL DEFAULT gen_random_uuid();
|
|
END IF;
|
|
END;
|
|
$$;
|
|
|
|
DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.columns
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'projects'
|
|
AND column_name = 'id'
|
|
) THEN
|
|
ALTER TABLE public.projects ADD COLUMN id bigserial NOT NULL;
|
|
END IF;
|
|
END;
|
|
$$;
|
|
|
|
DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.columns
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'projects'
|
|
AND column_name = 'last_active_at'
|
|
) THEN
|
|
ALTER TABLE public.projects ADD COLUMN last_active_at timestamptz DEFAULT now();
|
|
END IF;
|
|
END;
|
|
$$;
|
|
|
|
DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.columns
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'projects'
|
|
AND column_name = 'name'
|
|
) THEN
|
|
ALTER TABLE public.projects ADD COLUMN name text NOT NULL;
|
|
END IF;
|
|
END;
|
|
$$;
|
|
|
|
DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.columns
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'thought_links'
|
|
AND column_name = 'created_at'
|
|
) THEN
|
|
ALTER TABLE public.thought_links ADD COLUMN created_at timestamptz DEFAULT now();
|
|
END IF;
|
|
END;
|
|
$$;
|
|
|
|
DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.columns
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'thought_links'
|
|
AND column_name = 'from_id'
|
|
) THEN
|
|
ALTER TABLE public.thought_links ADD COLUMN from_id bigint NOT NULL;
|
|
END IF;
|
|
END;
|
|
$$;
|
|
|
|
DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.columns
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'thought_links'
|
|
AND column_name = 'id'
|
|
) THEN
|
|
ALTER TABLE public.thought_links ADD COLUMN id serial NOT NULL;
|
|
END IF;
|
|
END;
|
|
$$;
|
|
|
|
DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.columns
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'thought_links'
|
|
AND column_name = 'relation'
|
|
) THEN
|
|
ALTER TABLE public.thought_links ADD COLUMN relation text NOT NULL;
|
|
END IF;
|
|
END;
|
|
$$;
|
|
|
|
DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.columns
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'thought_links'
|
|
AND column_name = 'to_id'
|
|
) THEN
|
|
ALTER TABLE public.thought_links ADD COLUMN to_id bigint NOT NULL;
|
|
END IF;
|
|
END;
|
|
$$;
|
|
|
|
DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.columns
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'embeddings'
|
|
AND column_name = 'created_at'
|
|
) THEN
|
|
ALTER TABLE public.embeddings ADD COLUMN created_at timestamptz DEFAULT now();
|
|
END IF;
|
|
END;
|
|
$$;
|
|
|
|
DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.columns
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'embeddings'
|
|
AND column_name = 'dim'
|
|
) THEN
|
|
ALTER TABLE public.embeddings ADD COLUMN dim integer NOT NULL;
|
|
END IF;
|
|
END;
|
|
$$;
|
|
|
|
DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.columns
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'embeddings'
|
|
AND column_name = 'embedding'
|
|
) THEN
|
|
ALTER TABLE public.embeddings ADD COLUMN embedding vector NOT NULL;
|
|
END IF;
|
|
END;
|
|
$$;
|
|
|
|
DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.columns
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'embeddings'
|
|
AND column_name = 'guid'
|
|
) THEN
|
|
ALTER TABLE public.embeddings ADD COLUMN guid uuid NOT NULL DEFAULT gen_random_uuid();
|
|
END IF;
|
|
END;
|
|
$$;
|
|
|
|
DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.columns
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'embeddings'
|
|
AND column_name = 'id'
|
|
) THEN
|
|
ALTER TABLE public.embeddings ADD COLUMN id bigserial NOT NULL;
|
|
END IF;
|
|
END;
|
|
$$;
|
|
|
|
DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.columns
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'embeddings'
|
|
AND column_name = 'model'
|
|
) THEN
|
|
ALTER TABLE public.embeddings ADD COLUMN model text NOT NULL;
|
|
END IF;
|
|
END;
|
|
$$;
|
|
|
|
DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.columns
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'embeddings'
|
|
AND column_name = 'thought_id'
|
|
) THEN
|
|
ALTER TABLE public.embeddings ADD COLUMN thought_id uuid NOT NULL;
|
|
END IF;
|
|
END;
|
|
$$;
|
|
|
|
DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.columns
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'embeddings'
|
|
AND column_name = 'updated_at'
|
|
) THEN
|
|
ALTER TABLE public.embeddings ADD COLUMN updated_at timestamptz DEFAULT now();
|
|
END IF;
|
|
END;
|
|
$$;
|
|
|
|
DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.columns
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'professional_contacts'
|
|
AND column_name = 'company'
|
|
) THEN
|
|
ALTER TABLE public.professional_contacts ADD COLUMN company text;
|
|
END IF;
|
|
END;
|
|
$$;
|
|
|
|
DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.columns
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'professional_contacts'
|
|
AND column_name = 'created_at'
|
|
) THEN
|
|
ALTER TABLE public.professional_contacts ADD COLUMN created_at timestamptz NOT NULL DEFAULT now();
|
|
END IF;
|
|
END;
|
|
$$;
|
|
|
|
DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.columns
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'professional_contacts'
|
|
AND column_name = 'email'
|
|
) THEN
|
|
ALTER TABLE public.professional_contacts ADD COLUMN email text;
|
|
END IF;
|
|
END;
|
|
$$;
|
|
|
|
DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.columns
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'professional_contacts'
|
|
AND column_name = 'follow_up_date'
|
|
) THEN
|
|
ALTER TABLE public.professional_contacts ADD COLUMN follow_up_date date;
|
|
END IF;
|
|
END;
|
|
$$;
|
|
|
|
DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.columns
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'professional_contacts'
|
|
AND column_name = 'how_we_met'
|
|
) THEN
|
|
ALTER TABLE public.professional_contacts ADD COLUMN how_we_met text;
|
|
END IF;
|
|
END;
|
|
$$;
|
|
|
|
DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.columns
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'professional_contacts'
|
|
AND column_name = 'id'
|
|
) THEN
|
|
ALTER TABLE public.professional_contacts ADD COLUMN id uuid NOT NULL DEFAULT gen_random_uuid();
|
|
END IF;
|
|
END;
|
|
$$;
|
|
|
|
DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.columns
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'professional_contacts'
|
|
AND column_name = 'last_contacted'
|
|
) THEN
|
|
ALTER TABLE public.professional_contacts ADD COLUMN last_contacted timestamptz;
|
|
END IF;
|
|
END;
|
|
$$;
|
|
|
|
DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.columns
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'professional_contacts'
|
|
AND column_name = 'linkedin_url'
|
|
) THEN
|
|
ALTER TABLE public.professional_contacts ADD COLUMN linkedin_url text;
|
|
END IF;
|
|
END;
|
|
$$;
|
|
|
|
DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.columns
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'professional_contacts'
|
|
AND column_name = 'name'
|
|
) THEN
|
|
ALTER TABLE public.professional_contacts ADD COLUMN name text NOT NULL;
|
|
END IF;
|
|
END;
|
|
$$;
|
|
|
|
DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.columns
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'professional_contacts'
|
|
AND column_name = 'notes'
|
|
) THEN
|
|
ALTER TABLE public.professional_contacts ADD COLUMN notes text;
|
|
END IF;
|
|
END;
|
|
$$;
|
|
|
|
DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.columns
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'professional_contacts'
|
|
AND column_name = 'phone'
|
|
) THEN
|
|
ALTER TABLE public.professional_contacts ADD COLUMN phone text;
|
|
END IF;
|
|
END;
|
|
$$;
|
|
|
|
DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.columns
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'professional_contacts'
|
|
AND column_name = 'tags'
|
|
) THEN
|
|
ALTER TABLE public.professional_contacts ADD COLUMN tags text[] NOT NULL DEFAULT '{}';
|
|
END IF;
|
|
END;
|
|
$$;
|
|
|
|
DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.columns
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'professional_contacts'
|
|
AND column_name = 'title'
|
|
) THEN
|
|
ALTER TABLE public.professional_contacts ADD COLUMN title text;
|
|
END IF;
|
|
END;
|
|
$$;
|
|
|
|
DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.columns
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'professional_contacts'
|
|
AND column_name = 'updated_at'
|
|
) THEN
|
|
ALTER TABLE public.professional_contacts ADD COLUMN updated_at timestamptz NOT NULL DEFAULT now();
|
|
END IF;
|
|
END;
|
|
$$;
|
|
|
|
DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.columns
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'contact_interactions'
|
|
AND column_name = 'contact_id'
|
|
) THEN
|
|
ALTER TABLE public.contact_interactions ADD COLUMN contact_id uuid NOT NULL;
|
|
END IF;
|
|
END;
|
|
$$;
|
|
|
|
DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.columns
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'contact_interactions'
|
|
AND column_name = 'created_at'
|
|
) THEN
|
|
ALTER TABLE public.contact_interactions ADD COLUMN created_at timestamptz NOT NULL DEFAULT now();
|
|
END IF;
|
|
END;
|
|
$$;
|
|
|
|
DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.columns
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'contact_interactions'
|
|
AND column_name = 'follow_up_needed'
|
|
) THEN
|
|
ALTER TABLE public.contact_interactions ADD COLUMN follow_up_needed boolean NOT NULL DEFAULT false;
|
|
END IF;
|
|
END;
|
|
$$;
|
|
|
|
DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.columns
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'contact_interactions'
|
|
AND column_name = 'follow_up_notes'
|
|
) THEN
|
|
ALTER TABLE public.contact_interactions ADD COLUMN follow_up_notes text;
|
|
END IF;
|
|
END;
|
|
$$;
|
|
|
|
DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.columns
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'contact_interactions'
|
|
AND column_name = 'id'
|
|
) THEN
|
|
ALTER TABLE public.contact_interactions ADD COLUMN id uuid NOT NULL DEFAULT gen_random_uuid();
|
|
END IF;
|
|
END;
|
|
$$;
|
|
|
|
DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.columns
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'contact_interactions'
|
|
AND column_name = 'interaction_type'
|
|
) THEN
|
|
ALTER TABLE public.contact_interactions ADD COLUMN interaction_type text NOT NULL;
|
|
END IF;
|
|
END;
|
|
$$;
|
|
|
|
DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.columns
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'contact_interactions'
|
|
AND column_name = 'occurred_at'
|
|
) THEN
|
|
ALTER TABLE public.contact_interactions ADD COLUMN occurred_at timestamptz NOT NULL DEFAULT now();
|
|
END IF;
|
|
END;
|
|
$$;
|
|
|
|
DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.columns
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'contact_interactions'
|
|
AND column_name = 'summary'
|
|
) THEN
|
|
ALTER TABLE public.contact_interactions ADD COLUMN summary text NOT NULL;
|
|
END IF;
|
|
END;
|
|
$$;
|
|
|
|
DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.columns
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'opportunities'
|
|
AND column_name = 'contact_id'
|
|
) THEN
|
|
ALTER TABLE public.opportunities ADD COLUMN contact_id uuid;
|
|
END IF;
|
|
END;
|
|
$$;
|
|
|
|
DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.columns
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'opportunities'
|
|
AND column_name = 'created_at'
|
|
) THEN
|
|
ALTER TABLE public.opportunities ADD COLUMN created_at timestamptz NOT NULL DEFAULT now();
|
|
END IF;
|
|
END;
|
|
$$;
|
|
|
|
DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.columns
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'opportunities'
|
|
AND column_name = 'description'
|
|
) THEN
|
|
ALTER TABLE public.opportunities ADD COLUMN description text;
|
|
END IF;
|
|
END;
|
|
$$;
|
|
|
|
DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.columns
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'opportunities'
|
|
AND column_name = 'expected_close_date'
|
|
) THEN
|
|
ALTER TABLE public.opportunities ADD COLUMN expected_close_date date;
|
|
END IF;
|
|
END;
|
|
$$;
|
|
|
|
DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.columns
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'opportunities'
|
|
AND column_name = 'id'
|
|
) THEN
|
|
ALTER TABLE public.opportunities ADD COLUMN id uuid NOT NULL DEFAULT gen_random_uuid();
|
|
END IF;
|
|
END;
|
|
$$;
|
|
|
|
DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.columns
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'opportunities'
|
|
AND column_name = 'notes'
|
|
) THEN
|
|
ALTER TABLE public.opportunities ADD COLUMN notes text;
|
|
END IF;
|
|
END;
|
|
$$;
|
|
|
|
DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.columns
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'opportunities'
|
|
AND column_name = 'stage'
|
|
) THEN
|
|
ALTER TABLE public.opportunities ADD COLUMN stage text NOT NULL DEFAULT 'identified';
|
|
END IF;
|
|
END;
|
|
$$;
|
|
|
|
DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.columns
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'opportunities'
|
|
AND column_name = 'title'
|
|
) THEN
|
|
ALTER TABLE public.opportunities ADD COLUMN title text NOT NULL;
|
|
END IF;
|
|
END;
|
|
$$;
|
|
|
|
DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.columns
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'opportunities'
|
|
AND column_name = 'updated_at'
|
|
) THEN
|
|
ALTER TABLE public.opportunities ADD COLUMN updated_at timestamptz NOT NULL DEFAULT now();
|
|
END IF;
|
|
END;
|
|
$$;
|
|
|
|
DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.columns
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'opportunities'
|
|
AND column_name = 'value'
|
|
) THEN
|
|
ALTER TABLE public.opportunities ADD COLUMN value decimal(12,2);
|
|
END IF;
|
|
END;
|
|
$$;
|
|
|
|
DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.columns
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'stored_files'
|
|
AND column_name = 'content'
|
|
) THEN
|
|
ALTER TABLE public.stored_files ADD COLUMN content bytea NOT NULL;
|
|
END IF;
|
|
END;
|
|
$$;
|
|
|
|
DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.columns
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'stored_files'
|
|
AND column_name = 'created_at'
|
|
) THEN
|
|
ALTER TABLE public.stored_files ADD COLUMN created_at timestamptz NOT NULL DEFAULT now();
|
|
END IF;
|
|
END;
|
|
$$;
|
|
|
|
DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.columns
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'stored_files'
|
|
AND column_name = 'encoding'
|
|
) THEN
|
|
ALTER TABLE public.stored_files ADD COLUMN encoding text NOT NULL DEFAULT 'base64';
|
|
END IF;
|
|
END;
|
|
$$;
|
|
|
|
DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.columns
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'stored_files'
|
|
AND column_name = 'guid'
|
|
) THEN
|
|
ALTER TABLE public.stored_files ADD COLUMN guid uuid NOT NULL DEFAULT gen_random_uuid();
|
|
END IF;
|
|
END;
|
|
$$;
|
|
|
|
DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.columns
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'stored_files'
|
|
AND column_name = 'id'
|
|
) THEN
|
|
ALTER TABLE public.stored_files ADD COLUMN id bigserial NOT NULL;
|
|
END IF;
|
|
END;
|
|
$$;
|
|
|
|
DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.columns
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'stored_files'
|
|
AND column_name = 'kind'
|
|
) THEN
|
|
ALTER TABLE public.stored_files ADD COLUMN kind text NOT NULL DEFAULT 'file';
|
|
END IF;
|
|
END;
|
|
$$;
|
|
|
|
DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.columns
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'stored_files'
|
|
AND column_name = 'media_type'
|
|
) THEN
|
|
ALTER TABLE public.stored_files ADD COLUMN media_type text NOT NULL;
|
|
END IF;
|
|
END;
|
|
$$;
|
|
|
|
DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.columns
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'stored_files'
|
|
AND column_name = 'name'
|
|
) THEN
|
|
ALTER TABLE public.stored_files ADD COLUMN name text NOT NULL;
|
|
END IF;
|
|
END;
|
|
$$;
|
|
|
|
DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.columns
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'stored_files'
|
|
AND column_name = 'project_id'
|
|
) THEN
|
|
ALTER TABLE public.stored_files ADD COLUMN project_id uuid;
|
|
END IF;
|
|
END;
|
|
$$;
|
|
|
|
DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.columns
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'stored_files'
|
|
AND column_name = 'sha256'
|
|
) THEN
|
|
ALTER TABLE public.stored_files ADD COLUMN sha256 text NOT NULL;
|
|
END IF;
|
|
END;
|
|
$$;
|
|
|
|
DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.columns
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'stored_files'
|
|
AND column_name = 'size_bytes'
|
|
) THEN
|
|
ALTER TABLE public.stored_files ADD COLUMN size_bytes bigint NOT NULL;
|
|
END IF;
|
|
END;
|
|
$$;
|
|
|
|
DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.columns
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'stored_files'
|
|
AND column_name = 'thought_id'
|
|
) THEN
|
|
ALTER TABLE public.stored_files ADD COLUMN thought_id uuid;
|
|
END IF;
|
|
END;
|
|
$$;
|
|
|
|
DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.columns
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'stored_files'
|
|
AND column_name = 'updated_at'
|
|
) THEN
|
|
ALTER TABLE public.stored_files ADD COLUMN updated_at timestamptz NOT NULL DEFAULT now();
|
|
END IF;
|
|
END;
|
|
$$;
|
|
|
|
DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.columns
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'household_items'
|
|
AND column_name = 'category'
|
|
) THEN
|
|
ALTER TABLE public.household_items ADD COLUMN category text;
|
|
END IF;
|
|
END;
|
|
$$;
|
|
|
|
DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.columns
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'household_items'
|
|
AND column_name = 'created_at'
|
|
) THEN
|
|
ALTER TABLE public.household_items ADD COLUMN created_at timestamptz NOT NULL DEFAULT now();
|
|
END IF;
|
|
END;
|
|
$$;
|
|
|
|
DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.columns
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'household_items'
|
|
AND column_name = 'details'
|
|
) THEN
|
|
ALTER TABLE public.household_items ADD COLUMN details jsonb NOT NULL DEFAULT '{}';
|
|
END IF;
|
|
END;
|
|
$$;
|
|
|
|
DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.columns
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'household_items'
|
|
AND column_name = 'id'
|
|
) THEN
|
|
ALTER TABLE public.household_items ADD COLUMN id uuid NOT NULL DEFAULT gen_random_uuid();
|
|
END IF;
|
|
END;
|
|
$$;
|
|
|
|
DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.columns
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'household_items'
|
|
AND column_name = 'location'
|
|
) THEN
|
|
ALTER TABLE public.household_items ADD COLUMN location text;
|
|
END IF;
|
|
END;
|
|
$$;
|
|
|
|
DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.columns
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'household_items'
|
|
AND column_name = 'name'
|
|
) THEN
|
|
ALTER TABLE public.household_items ADD COLUMN name text NOT NULL;
|
|
END IF;
|
|
END;
|
|
$$;
|
|
|
|
DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.columns
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'household_items'
|
|
AND column_name = 'notes'
|
|
) THEN
|
|
ALTER TABLE public.household_items ADD COLUMN notes text;
|
|
END IF;
|
|
END;
|
|
$$;
|
|
|
|
DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.columns
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'household_items'
|
|
AND column_name = 'updated_at'
|
|
) THEN
|
|
ALTER TABLE public.household_items ADD COLUMN updated_at timestamptz NOT NULL DEFAULT now();
|
|
END IF;
|
|
END;
|
|
$$;
|
|
|
|
DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.columns
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'household_vendors'
|
|
AND column_name = 'created_at'
|
|
) THEN
|
|
ALTER TABLE public.household_vendors ADD COLUMN created_at timestamptz NOT NULL DEFAULT now();
|
|
END IF;
|
|
END;
|
|
$$;
|
|
|
|
DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.columns
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'household_vendors'
|
|
AND column_name = 'email'
|
|
) THEN
|
|
ALTER TABLE public.household_vendors ADD COLUMN email text;
|
|
END IF;
|
|
END;
|
|
$$;
|
|
|
|
DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.columns
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'household_vendors'
|
|
AND column_name = 'id'
|
|
) THEN
|
|
ALTER TABLE public.household_vendors ADD COLUMN id uuid NOT NULL DEFAULT gen_random_uuid();
|
|
END IF;
|
|
END;
|
|
$$;
|
|
|
|
DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.columns
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'household_vendors'
|
|
AND column_name = 'last_used'
|
|
) THEN
|
|
ALTER TABLE public.household_vendors ADD COLUMN last_used date;
|
|
END IF;
|
|
END;
|
|
$$;
|
|
|
|
DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.columns
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'household_vendors'
|
|
AND column_name = 'name'
|
|
) THEN
|
|
ALTER TABLE public.household_vendors ADD COLUMN name text NOT NULL;
|
|
END IF;
|
|
END;
|
|
$$;
|
|
|
|
DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.columns
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'household_vendors'
|
|
AND column_name = 'notes'
|
|
) THEN
|
|
ALTER TABLE public.household_vendors ADD COLUMN notes text;
|
|
END IF;
|
|
END;
|
|
$$;
|
|
|
|
DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.columns
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'household_vendors'
|
|
AND column_name = 'phone'
|
|
) THEN
|
|
ALTER TABLE public.household_vendors ADD COLUMN phone text;
|
|
END IF;
|
|
END;
|
|
$$;
|
|
|
|
DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.columns
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'household_vendors'
|
|
AND column_name = 'rating'
|
|
) THEN
|
|
ALTER TABLE public.household_vendors ADD COLUMN rating integer;
|
|
END IF;
|
|
END;
|
|
$$;
|
|
|
|
DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.columns
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'household_vendors'
|
|
AND column_name = 'service_type'
|
|
) THEN
|
|
ALTER TABLE public.household_vendors ADD COLUMN service_type text;
|
|
END IF;
|
|
END;
|
|
$$;
|
|
|
|
DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.columns
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'household_vendors'
|
|
AND column_name = 'website'
|
|
) THEN
|
|
ALTER TABLE public.household_vendors ADD COLUMN website text;
|
|
END IF;
|
|
END;
|
|
$$;
|
|
|
|
DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.columns
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'maintenance_tasks'
|
|
AND column_name = 'category'
|
|
) THEN
|
|
ALTER TABLE public.maintenance_tasks ADD COLUMN category text;
|
|
END IF;
|
|
END;
|
|
$$;
|
|
|
|
DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.columns
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'maintenance_tasks'
|
|
AND column_name = 'created_at'
|
|
) THEN
|
|
ALTER TABLE public.maintenance_tasks ADD COLUMN created_at timestamptz NOT NULL DEFAULT now();
|
|
END IF;
|
|
END;
|
|
$$;
|
|
|
|
DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.columns
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'maintenance_tasks'
|
|
AND column_name = 'frequency_days'
|
|
) THEN
|
|
ALTER TABLE public.maintenance_tasks ADD COLUMN frequency_days integer;
|
|
END IF;
|
|
END;
|
|
$$;
|
|
|
|
DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.columns
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'maintenance_tasks'
|
|
AND column_name = 'id'
|
|
) THEN
|
|
ALTER TABLE public.maintenance_tasks ADD COLUMN id uuid NOT NULL DEFAULT gen_random_uuid();
|
|
END IF;
|
|
END;
|
|
$$;
|
|
|
|
DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.columns
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'maintenance_tasks'
|
|
AND column_name = 'last_completed'
|
|
) THEN
|
|
ALTER TABLE public.maintenance_tasks ADD COLUMN last_completed timestamptz;
|
|
END IF;
|
|
END;
|
|
$$;
|
|
|
|
DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.columns
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'maintenance_tasks'
|
|
AND column_name = 'name'
|
|
) THEN
|
|
ALTER TABLE public.maintenance_tasks ADD COLUMN name text NOT NULL;
|
|
END IF;
|
|
END;
|
|
$$;
|
|
|
|
DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.columns
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'maintenance_tasks'
|
|
AND column_name = 'next_due'
|
|
) THEN
|
|
ALTER TABLE public.maintenance_tasks ADD COLUMN next_due timestamptz;
|
|
END IF;
|
|
END;
|
|
$$;
|
|
|
|
DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.columns
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'maintenance_tasks'
|
|
AND column_name = 'notes'
|
|
) THEN
|
|
ALTER TABLE public.maintenance_tasks ADD COLUMN notes text;
|
|
END IF;
|
|
END;
|
|
$$;
|
|
|
|
DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.columns
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'maintenance_tasks'
|
|
AND column_name = 'priority'
|
|
) THEN
|
|
ALTER TABLE public.maintenance_tasks ADD COLUMN priority text NOT NULL DEFAULT 'medium';
|
|
END IF;
|
|
END;
|
|
$$;
|
|
|
|
DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.columns
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'maintenance_tasks'
|
|
AND column_name = 'updated_at'
|
|
) THEN
|
|
ALTER TABLE public.maintenance_tasks ADD COLUMN updated_at timestamptz NOT NULL DEFAULT now();
|
|
END IF;
|
|
END;
|
|
$$;
|
|
|
|
DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.columns
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'maintenance_logs'
|
|
AND column_name = 'completed_at'
|
|
) THEN
|
|
ALTER TABLE public.maintenance_logs ADD COLUMN completed_at timestamptz NOT NULL DEFAULT now();
|
|
END IF;
|
|
END;
|
|
$$;
|
|
|
|
DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.columns
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'maintenance_logs'
|
|
AND column_name = 'cost'
|
|
) THEN
|
|
ALTER TABLE public.maintenance_logs ADD COLUMN cost decimal(10,2);
|
|
END IF;
|
|
END;
|
|
$$;
|
|
|
|
DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.columns
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'maintenance_logs'
|
|
AND column_name = 'id'
|
|
) THEN
|
|
ALTER TABLE public.maintenance_logs ADD COLUMN id uuid NOT NULL DEFAULT gen_random_uuid();
|
|
END IF;
|
|
END;
|
|
$$;
|
|
|
|
DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.columns
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'maintenance_logs'
|
|
AND column_name = 'next_action'
|
|
) THEN
|
|
ALTER TABLE public.maintenance_logs ADD COLUMN next_action text;
|
|
END IF;
|
|
END;
|
|
$$;
|
|
|
|
DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.columns
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'maintenance_logs'
|
|
AND column_name = 'notes'
|
|
) THEN
|
|
ALTER TABLE public.maintenance_logs ADD COLUMN notes text;
|
|
END IF;
|
|
END;
|
|
$$;
|
|
|
|
DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.columns
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'maintenance_logs'
|
|
AND column_name = 'performed_by'
|
|
) THEN
|
|
ALTER TABLE public.maintenance_logs ADD COLUMN performed_by text;
|
|
END IF;
|
|
END;
|
|
$$;
|
|
|
|
DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.columns
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'maintenance_logs'
|
|
AND column_name = 'task_id'
|
|
) THEN
|
|
ALTER TABLE public.maintenance_logs ADD COLUMN task_id uuid NOT NULL;
|
|
END IF;
|
|
END;
|
|
$$;
|
|
|
|
DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.columns
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'recipes'
|
|
AND column_name = 'cook_time_minutes'
|
|
) THEN
|
|
ALTER TABLE public.recipes ADD COLUMN cook_time_minutes integer;
|
|
END IF;
|
|
END;
|
|
$$;
|
|
|
|
DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.columns
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'recipes'
|
|
AND column_name = 'created_at'
|
|
) THEN
|
|
ALTER TABLE public.recipes ADD COLUMN created_at timestamptz NOT NULL DEFAULT now();
|
|
END IF;
|
|
END;
|
|
$$;
|
|
|
|
DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.columns
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'recipes'
|
|
AND column_name = 'cuisine'
|
|
) THEN
|
|
ALTER TABLE public.recipes ADD COLUMN cuisine text;
|
|
END IF;
|
|
END;
|
|
$$;
|
|
|
|
DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.columns
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'recipes'
|
|
AND column_name = 'id'
|
|
) THEN
|
|
ALTER TABLE public.recipes ADD COLUMN id uuid NOT NULL DEFAULT gen_random_uuid();
|
|
END IF;
|
|
END;
|
|
$$;
|
|
|
|
DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.columns
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'recipes'
|
|
AND column_name = 'ingredients'
|
|
) THEN
|
|
ALTER TABLE public.recipes ADD COLUMN ingredients jsonb NOT NULL DEFAULT '[]';
|
|
END IF;
|
|
END;
|
|
$$;
|
|
|
|
DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.columns
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'recipes'
|
|
AND column_name = 'instructions'
|
|
) THEN
|
|
ALTER TABLE public.recipes ADD COLUMN instructions jsonb NOT NULL DEFAULT '[]';
|
|
END IF;
|
|
END;
|
|
$$;
|
|
|
|
DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.columns
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'recipes'
|
|
AND column_name = 'name'
|
|
) THEN
|
|
ALTER TABLE public.recipes ADD COLUMN name text NOT NULL;
|
|
END IF;
|
|
END;
|
|
$$;
|
|
|
|
DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.columns
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'recipes'
|
|
AND column_name = 'notes'
|
|
) THEN
|
|
ALTER TABLE public.recipes ADD COLUMN notes text;
|
|
END IF;
|
|
END;
|
|
$$;
|
|
|
|
DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.columns
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'recipes'
|
|
AND column_name = 'prep_time_minutes'
|
|
) THEN
|
|
ALTER TABLE public.recipes ADD COLUMN prep_time_minutes integer;
|
|
END IF;
|
|
END;
|
|
$$;
|
|
|
|
DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.columns
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'recipes'
|
|
AND column_name = 'rating'
|
|
) THEN
|
|
ALTER TABLE public.recipes ADD COLUMN rating integer;
|
|
END IF;
|
|
END;
|
|
$$;
|
|
|
|
DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.columns
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'recipes'
|
|
AND column_name = 'servings'
|
|
) THEN
|
|
ALTER TABLE public.recipes ADD COLUMN servings integer;
|
|
END IF;
|
|
END;
|
|
$$;
|
|
|
|
DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.columns
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'recipes'
|
|
AND column_name = 'tags'
|
|
) THEN
|
|
ALTER TABLE public.recipes ADD COLUMN tags text[] NOT NULL DEFAULT '{}';
|
|
END IF;
|
|
END;
|
|
$$;
|
|
|
|
DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.columns
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'recipes'
|
|
AND column_name = 'updated_at'
|
|
) THEN
|
|
ALTER TABLE public.recipes ADD COLUMN updated_at timestamptz NOT NULL DEFAULT now();
|
|
END IF;
|
|
END;
|
|
$$;
|
|
|
|
DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.columns
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'meal_plans'
|
|
AND column_name = 'created_at'
|
|
) THEN
|
|
ALTER TABLE public.meal_plans ADD COLUMN created_at timestamptz NOT NULL DEFAULT now();
|
|
END IF;
|
|
END;
|
|
$$;
|
|
|
|
DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.columns
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'meal_plans'
|
|
AND column_name = 'custom_meal'
|
|
) THEN
|
|
ALTER TABLE public.meal_plans ADD COLUMN custom_meal text;
|
|
END IF;
|
|
END;
|
|
$$;
|
|
|
|
DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.columns
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'meal_plans'
|
|
AND column_name = 'day_of_week'
|
|
) THEN
|
|
ALTER TABLE public.meal_plans ADD COLUMN day_of_week text NOT NULL;
|
|
END IF;
|
|
END;
|
|
$$;
|
|
|
|
DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.columns
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'meal_plans'
|
|
AND column_name = 'id'
|
|
) THEN
|
|
ALTER TABLE public.meal_plans ADD COLUMN id uuid NOT NULL DEFAULT gen_random_uuid();
|
|
END IF;
|
|
END;
|
|
$$;
|
|
|
|
DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.columns
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'meal_plans'
|
|
AND column_name = 'meal_type'
|
|
) THEN
|
|
ALTER TABLE public.meal_plans ADD COLUMN meal_type text NOT NULL;
|
|
END IF;
|
|
END;
|
|
$$;
|
|
|
|
DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.columns
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'meal_plans'
|
|
AND column_name = 'notes'
|
|
) THEN
|
|
ALTER TABLE public.meal_plans ADD COLUMN notes text;
|
|
END IF;
|
|
END;
|
|
$$;
|
|
|
|
DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.columns
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'meal_plans'
|
|
AND column_name = 'recipe_id'
|
|
) THEN
|
|
ALTER TABLE public.meal_plans ADD COLUMN recipe_id uuid;
|
|
END IF;
|
|
END;
|
|
$$;
|
|
|
|
DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.columns
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'meal_plans'
|
|
AND column_name = 'servings'
|
|
) THEN
|
|
ALTER TABLE public.meal_plans ADD COLUMN servings integer;
|
|
END IF;
|
|
END;
|
|
$$;
|
|
|
|
DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.columns
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'meal_plans'
|
|
AND column_name = 'week_start'
|
|
) THEN
|
|
ALTER TABLE public.meal_plans ADD COLUMN week_start date NOT NULL;
|
|
END IF;
|
|
END;
|
|
$$;
|
|
|
|
DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.columns
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'shopping_lists'
|
|
AND column_name = 'created_at'
|
|
) THEN
|
|
ALTER TABLE public.shopping_lists ADD COLUMN created_at timestamptz NOT NULL DEFAULT now();
|
|
END IF;
|
|
END;
|
|
$$;
|
|
|
|
DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.columns
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'shopping_lists'
|
|
AND column_name = 'id'
|
|
) THEN
|
|
ALTER TABLE public.shopping_lists ADD COLUMN id uuid NOT NULL DEFAULT gen_random_uuid();
|
|
END IF;
|
|
END;
|
|
$$;
|
|
|
|
DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.columns
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'shopping_lists'
|
|
AND column_name = 'items'
|
|
) THEN
|
|
ALTER TABLE public.shopping_lists ADD COLUMN items jsonb NOT NULL DEFAULT '[]';
|
|
END IF;
|
|
END;
|
|
$$;
|
|
|
|
DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.columns
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'shopping_lists'
|
|
AND column_name = 'notes'
|
|
) THEN
|
|
ALTER TABLE public.shopping_lists ADD COLUMN notes text;
|
|
END IF;
|
|
END;
|
|
$$;
|
|
|
|
DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.columns
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'shopping_lists'
|
|
AND column_name = 'updated_at'
|
|
) THEN
|
|
ALTER TABLE public.shopping_lists ADD COLUMN updated_at timestamptz NOT NULL DEFAULT now();
|
|
END IF;
|
|
END;
|
|
$$;
|
|
|
|
DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.columns
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'shopping_lists'
|
|
AND column_name = 'week_start'
|
|
) THEN
|
|
ALTER TABLE public.shopping_lists ADD COLUMN week_start date NOT NULL;
|
|
END IF;
|
|
END;
|
|
$$;
|
|
|
|
DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.columns
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'chat_histories'
|
|
AND column_name = 'agent_id'
|
|
) THEN
|
|
ALTER TABLE public.chat_histories ADD COLUMN agent_id text;
|
|
END IF;
|
|
END;
|
|
$$;
|
|
|
|
DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.columns
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'chat_histories'
|
|
AND column_name = 'channel'
|
|
) THEN
|
|
ALTER TABLE public.chat_histories ADD COLUMN channel text;
|
|
END IF;
|
|
END;
|
|
$$;
|
|
|
|
DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.columns
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'chat_histories'
|
|
AND column_name = 'created_at'
|
|
) THEN
|
|
ALTER TABLE public.chat_histories ADD COLUMN created_at timestamptz NOT NULL DEFAULT now();
|
|
END IF;
|
|
END;
|
|
$$;
|
|
|
|
DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.columns
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'chat_histories'
|
|
AND column_name = 'id'
|
|
) THEN
|
|
ALTER TABLE public.chat_histories ADD COLUMN id uuid NOT NULL DEFAULT gen_random_uuid();
|
|
END IF;
|
|
END;
|
|
$$;
|
|
|
|
DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.columns
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'chat_histories'
|
|
AND column_name = 'messages'
|
|
) THEN
|
|
ALTER TABLE public.chat_histories ADD COLUMN messages jsonb NOT NULL DEFAULT '[]';
|
|
END IF;
|
|
END;
|
|
$$;
|
|
|
|
DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.columns
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'chat_histories'
|
|
AND column_name = 'metadata'
|
|
) THEN
|
|
ALTER TABLE public.chat_histories ADD COLUMN metadata jsonb NOT NULL DEFAULT '{}';
|
|
END IF;
|
|
END;
|
|
$$;
|
|
|
|
DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.columns
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'chat_histories'
|
|
AND column_name = 'project_id'
|
|
) THEN
|
|
ALTER TABLE public.chat_histories ADD COLUMN project_id uuid;
|
|
END IF;
|
|
END;
|
|
$$;
|
|
|
|
DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.columns
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'chat_histories'
|
|
AND column_name = 'session_id'
|
|
) THEN
|
|
ALTER TABLE public.chat_histories ADD COLUMN session_id text NOT NULL;
|
|
END IF;
|
|
END;
|
|
$$;
|
|
|
|
DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.columns
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'chat_histories'
|
|
AND column_name = 'summary'
|
|
) THEN
|
|
ALTER TABLE public.chat_histories ADD COLUMN summary text;
|
|
END IF;
|
|
END;
|
|
$$;
|
|
|
|
DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.columns
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'chat_histories'
|
|
AND column_name = 'title'
|
|
) THEN
|
|
ALTER TABLE public.chat_histories ADD COLUMN title text;
|
|
END IF;
|
|
END;
|
|
$$;
|
|
|
|
DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.columns
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'chat_histories'
|
|
AND column_name = 'updated_at'
|
|
) THEN
|
|
ALTER TABLE public.chat_histories ADD COLUMN updated_at timestamptz NOT NULL DEFAULT now();
|
|
END IF;
|
|
END;
|
|
$$;
|
|
|
|
DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.columns
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'tool_annotations'
|
|
AND column_name = 'created_at'
|
|
) THEN
|
|
ALTER TABLE public.tool_annotations ADD COLUMN created_at timestamptz NOT NULL DEFAULT now();
|
|
END IF;
|
|
END;
|
|
$$;
|
|
|
|
DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.columns
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'tool_annotations'
|
|
AND column_name = 'id'
|
|
) THEN
|
|
ALTER TABLE public.tool_annotations ADD COLUMN id bigserial NOT NULL;
|
|
END IF;
|
|
END;
|
|
$$;
|
|
|
|
DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.columns
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'tool_annotations'
|
|
AND column_name = 'notes'
|
|
) THEN
|
|
ALTER TABLE public.tool_annotations ADD COLUMN notes text NOT NULL DEFAULT '';
|
|
END IF;
|
|
END;
|
|
$$;
|
|
|
|
DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.columns
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'tool_annotations'
|
|
AND column_name = 'tool_name'
|
|
) THEN
|
|
ALTER TABLE public.tool_annotations ADD COLUMN tool_name text NOT NULL;
|
|
END IF;
|
|
END;
|
|
$$;
|
|
|
|
DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.columns
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'tool_annotations'
|
|
AND column_name = 'updated_at'
|
|
) THEN
|
|
ALTER TABLE public.tool_annotations ADD COLUMN updated_at timestamptz NOT NULL DEFAULT now();
|
|
END IF;
|
|
END;
|
|
$$;
|
|
|
|
DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.columns
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'learnings'
|
|
AND column_name = 'action_required'
|
|
) THEN
|
|
ALTER TABLE public.learnings ADD COLUMN action_required boolean NOT NULL DEFAULT false;
|
|
END IF;
|
|
END;
|
|
$$;
|
|
|
|
DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.columns
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'learnings'
|
|
AND column_name = 'area'
|
|
) THEN
|
|
ALTER TABLE public.learnings ADD COLUMN area text NOT NULL DEFAULT 'other';
|
|
END IF;
|
|
END;
|
|
$$;
|
|
|
|
DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.columns
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'learnings'
|
|
AND column_name = 'category'
|
|
) THEN
|
|
ALTER TABLE public.learnings ADD COLUMN category text NOT NULL DEFAULT 'insight';
|
|
END IF;
|
|
END;
|
|
$$;
|
|
|
|
DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.columns
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'learnings'
|
|
AND column_name = 'confidence'
|
|
) THEN
|
|
ALTER TABLE public.learnings ADD COLUMN confidence text NOT NULL DEFAULT 'hypothesis';
|
|
END IF;
|
|
END;
|
|
$$;
|
|
|
|
DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.columns
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'learnings'
|
|
AND column_name = 'created_at'
|
|
) THEN
|
|
ALTER TABLE public.learnings ADD COLUMN created_at timestamptz NOT NULL DEFAULT now();
|
|
END IF;
|
|
END;
|
|
$$;
|
|
|
|
DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.columns
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'learnings'
|
|
AND column_name = 'details'
|
|
) THEN
|
|
ALTER TABLE public.learnings ADD COLUMN details text NOT NULL DEFAULT '';
|
|
END IF;
|
|
END;
|
|
$$;
|
|
|
|
DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.columns
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'learnings'
|
|
AND column_name = 'duplicate_of_learning_id'
|
|
) THEN
|
|
ALTER TABLE public.learnings ADD COLUMN duplicate_of_learning_id uuid;
|
|
END IF;
|
|
END;
|
|
$$;
|
|
|
|
DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.columns
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'learnings'
|
|
AND column_name = 'id'
|
|
) THEN
|
|
ALTER TABLE public.learnings ADD COLUMN id uuid NOT NULL DEFAULT gen_random_uuid();
|
|
END IF;
|
|
END;
|
|
$$;
|
|
|
|
DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.columns
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'learnings'
|
|
AND column_name = 'priority'
|
|
) THEN
|
|
ALTER TABLE public.learnings ADD COLUMN priority text NOT NULL DEFAULT 'medium';
|
|
END IF;
|
|
END;
|
|
$$;
|
|
|
|
DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.columns
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'learnings'
|
|
AND column_name = 'project_id'
|
|
) THEN
|
|
ALTER TABLE public.learnings ADD COLUMN project_id uuid;
|
|
END IF;
|
|
END;
|
|
$$;
|
|
|
|
DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.columns
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'learnings'
|
|
AND column_name = 'related_skill_id'
|
|
) THEN
|
|
ALTER TABLE public.learnings ADD COLUMN related_skill_id uuid;
|
|
END IF;
|
|
END;
|
|
$$;
|
|
|
|
DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.columns
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'learnings'
|
|
AND column_name = 'related_thought_id'
|
|
) THEN
|
|
ALTER TABLE public.learnings ADD COLUMN related_thought_id uuid;
|
|
END IF;
|
|
END;
|
|
$$;
|
|
|
|
DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.columns
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'learnings'
|
|
AND column_name = 'reviewed_at'
|
|
) THEN
|
|
ALTER TABLE public.learnings ADD COLUMN reviewed_at timestamptz;
|
|
END IF;
|
|
END;
|
|
$$;
|
|
|
|
DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.columns
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'learnings'
|
|
AND column_name = 'reviewed_by'
|
|
) THEN
|
|
ALTER TABLE public.learnings ADD COLUMN reviewed_by text;
|
|
END IF;
|
|
END;
|
|
$$;
|
|
|
|
DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.columns
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'learnings'
|
|
AND column_name = 'source_ref'
|
|
) THEN
|
|
ALTER TABLE public.learnings ADD COLUMN source_ref text;
|
|
END IF;
|
|
END;
|
|
$$;
|
|
|
|
DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.columns
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'learnings'
|
|
AND column_name = 'source_type'
|
|
) THEN
|
|
ALTER TABLE public.learnings ADD COLUMN source_type text;
|
|
END IF;
|
|
END;
|
|
$$;
|
|
|
|
DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.columns
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'learnings'
|
|
AND column_name = 'status'
|
|
) THEN
|
|
ALTER TABLE public.learnings ADD COLUMN status text NOT NULL DEFAULT 'pending';
|
|
END IF;
|
|
END;
|
|
$$;
|
|
|
|
DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.columns
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'learnings'
|
|
AND column_name = 'summary'
|
|
) THEN
|
|
ALTER TABLE public.learnings ADD COLUMN summary text NOT NULL;
|
|
END IF;
|
|
END;
|
|
$$;
|
|
|
|
DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.columns
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'learnings'
|
|
AND column_name = 'supersedes_learning_id'
|
|
) THEN
|
|
ALTER TABLE public.learnings ADD COLUMN supersedes_learning_id uuid;
|
|
END IF;
|
|
END;
|
|
$$;
|
|
|
|
DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.columns
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'learnings'
|
|
AND column_name = 'tags'
|
|
) THEN
|
|
ALTER TABLE public.learnings ADD COLUMN tags text[] NOT NULL DEFAULT '{}';
|
|
END IF;
|
|
END;
|
|
$$;
|
|
|
|
DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.columns
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'learnings'
|
|
AND column_name = 'updated_at'
|
|
) THEN
|
|
ALTER TABLE public.learnings ADD COLUMN updated_at timestamptz NOT NULL DEFAULT now();
|
|
END IF;
|
|
END;
|
|
$$;
|
|
|
|
DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.columns
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'plans'
|
|
AND column_name = 'completed_at'
|
|
) THEN
|
|
ALTER TABLE public.plans ADD COLUMN completed_at timestamptz;
|
|
END IF;
|
|
END;
|
|
$$;
|
|
|
|
DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.columns
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'plans'
|
|
AND column_name = 'created_at'
|
|
) THEN
|
|
ALTER TABLE public.plans ADD COLUMN created_at timestamptz NOT NULL DEFAULT now();
|
|
END IF;
|
|
END;
|
|
$$;
|
|
|
|
DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.columns
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'plans'
|
|
AND column_name = 'description'
|
|
) THEN
|
|
ALTER TABLE public.plans ADD COLUMN description text NOT NULL DEFAULT '';
|
|
END IF;
|
|
END;
|
|
$$;
|
|
|
|
DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.columns
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'plans'
|
|
AND column_name = 'due_date'
|
|
) THEN
|
|
ALTER TABLE public.plans ADD COLUMN due_date timestamptz;
|
|
END IF;
|
|
END;
|
|
$$;
|
|
|
|
DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.columns
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'plans'
|
|
AND column_name = 'id'
|
|
) THEN
|
|
ALTER TABLE public.plans ADD COLUMN id uuid NOT NULL DEFAULT gen_random_uuid();
|
|
END IF;
|
|
END;
|
|
$$;
|
|
|
|
DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.columns
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'plans'
|
|
AND column_name = 'last_reviewed_at'
|
|
) THEN
|
|
ALTER TABLE public.plans ADD COLUMN last_reviewed_at timestamptz;
|
|
END IF;
|
|
END;
|
|
$$;
|
|
|
|
DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.columns
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'plans'
|
|
AND column_name = 'owner'
|
|
) THEN
|
|
ALTER TABLE public.plans ADD COLUMN owner text;
|
|
END IF;
|
|
END;
|
|
$$;
|
|
|
|
DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.columns
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'plans'
|
|
AND column_name = 'priority'
|
|
) THEN
|
|
ALTER TABLE public.plans ADD COLUMN priority text NOT NULL DEFAULT 'medium';
|
|
END IF;
|
|
END;
|
|
$$;
|
|
|
|
DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.columns
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'plans'
|
|
AND column_name = 'project_id'
|
|
) THEN
|
|
ALTER TABLE public.plans ADD COLUMN project_id uuid;
|
|
END IF;
|
|
END;
|
|
$$;
|
|
|
|
DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.columns
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'plans'
|
|
AND column_name = 'reviewed_by'
|
|
) THEN
|
|
ALTER TABLE public.plans ADD COLUMN reviewed_by text;
|
|
END IF;
|
|
END;
|
|
$$;
|
|
|
|
DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.columns
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'plans'
|
|
AND column_name = 'status'
|
|
) THEN
|
|
ALTER TABLE public.plans ADD COLUMN status text NOT NULL DEFAULT 'draft';
|
|
END IF;
|
|
END;
|
|
$$;
|
|
|
|
DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.columns
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'plans'
|
|
AND column_name = 'supersedes_plan_id'
|
|
) THEN
|
|
ALTER TABLE public.plans ADD COLUMN supersedes_plan_id uuid;
|
|
END IF;
|
|
END;
|
|
$$;
|
|
|
|
DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.columns
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'plans'
|
|
AND column_name = 'tags'
|
|
) THEN
|
|
ALTER TABLE public.plans ADD COLUMN tags text[] NOT NULL DEFAULT '{}';
|
|
END IF;
|
|
END;
|
|
$$;
|
|
|
|
DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.columns
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'plans'
|
|
AND column_name = 'title'
|
|
) THEN
|
|
ALTER TABLE public.plans ADD COLUMN title text NOT NULL;
|
|
END IF;
|
|
END;
|
|
$$;
|
|
|
|
DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.columns
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'plans'
|
|
AND column_name = 'updated_at'
|
|
) THEN
|
|
ALTER TABLE public.plans ADD COLUMN updated_at timestamptz NOT NULL DEFAULT now();
|
|
END IF;
|
|
END;
|
|
$$;
|
|
|
|
DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.columns
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'plan_dependencies'
|
|
AND column_name = 'created_at'
|
|
) THEN
|
|
ALTER TABLE public.plan_dependencies ADD COLUMN created_at timestamptz NOT NULL DEFAULT now();
|
|
END IF;
|
|
END;
|
|
$$;
|
|
|
|
DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.columns
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'plan_dependencies'
|
|
AND column_name = 'depends_on_plan_id'
|
|
) THEN
|
|
ALTER TABLE public.plan_dependencies ADD COLUMN depends_on_plan_id uuid NOT NULL;
|
|
END IF;
|
|
END;
|
|
$$;
|
|
|
|
DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.columns
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'plan_dependencies'
|
|
AND column_name = 'id'
|
|
) THEN
|
|
ALTER TABLE public.plan_dependencies ADD COLUMN id serial NOT NULL;
|
|
END IF;
|
|
END;
|
|
$$;
|
|
|
|
DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.columns
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'plan_dependencies'
|
|
AND column_name = 'plan_id'
|
|
) THEN
|
|
ALTER TABLE public.plan_dependencies ADD COLUMN plan_id uuid NOT NULL;
|
|
END IF;
|
|
END;
|
|
$$;
|
|
|
|
DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.columns
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'plan_related_plans'
|
|
AND column_name = 'created_at'
|
|
) THEN
|
|
ALTER TABLE public.plan_related_plans ADD COLUMN created_at timestamptz NOT NULL DEFAULT now();
|
|
END IF;
|
|
END;
|
|
$$;
|
|
|
|
DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.columns
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'plan_related_plans'
|
|
AND column_name = 'id'
|
|
) THEN
|
|
ALTER TABLE public.plan_related_plans ADD COLUMN id serial NOT NULL;
|
|
END IF;
|
|
END;
|
|
$$;
|
|
|
|
DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.columns
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'plan_related_plans'
|
|
AND column_name = 'plan_a_id'
|
|
) THEN
|
|
ALTER TABLE public.plan_related_plans ADD COLUMN plan_a_id uuid NOT NULL;
|
|
END IF;
|
|
END;
|
|
$$;
|
|
|
|
DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.columns
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'plan_related_plans'
|
|
AND column_name = 'plan_b_id'
|
|
) THEN
|
|
ALTER TABLE public.plan_related_plans ADD COLUMN plan_b_id uuid NOT NULL;
|
|
END IF;
|
|
END;
|
|
$$;
|
|
|
|
DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.columns
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'plan_skills'
|
|
AND column_name = 'created_at'
|
|
) THEN
|
|
ALTER TABLE public.plan_skills ADD COLUMN created_at timestamptz NOT NULL DEFAULT now();
|
|
END IF;
|
|
END;
|
|
$$;
|
|
|
|
DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.columns
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'plan_skills'
|
|
AND column_name = 'id'
|
|
) THEN
|
|
ALTER TABLE public.plan_skills ADD COLUMN id serial NOT NULL;
|
|
END IF;
|
|
END;
|
|
$$;
|
|
|
|
DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.columns
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'plan_skills'
|
|
AND column_name = 'plan_id'
|
|
) THEN
|
|
ALTER TABLE public.plan_skills ADD COLUMN plan_id uuid NOT NULL;
|
|
END IF;
|
|
END;
|
|
$$;
|
|
|
|
DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.columns
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'plan_skills'
|
|
AND column_name = 'skill_id'
|
|
) THEN
|
|
ALTER TABLE public.plan_skills ADD COLUMN skill_id uuid NOT NULL;
|
|
END IF;
|
|
END;
|
|
$$;
|
|
|
|
DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.columns
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'plan_guardrails'
|
|
AND column_name = 'created_at'
|
|
) THEN
|
|
ALTER TABLE public.plan_guardrails ADD COLUMN created_at timestamptz NOT NULL DEFAULT now();
|
|
END IF;
|
|
END;
|
|
$$;
|
|
|
|
DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.columns
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'plan_guardrails'
|
|
AND column_name = 'guardrail_id'
|
|
) THEN
|
|
ALTER TABLE public.plan_guardrails ADD COLUMN guardrail_id uuid NOT NULL;
|
|
END IF;
|
|
END;
|
|
$$;
|
|
|
|
DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.columns
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'plan_guardrails'
|
|
AND column_name = 'id'
|
|
) THEN
|
|
ALTER TABLE public.plan_guardrails ADD COLUMN id serial NOT NULL;
|
|
END IF;
|
|
END;
|
|
$$;
|
|
|
|
DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.columns
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'plan_guardrails'
|
|
AND column_name = 'plan_id'
|
|
) THEN
|
|
ALTER TABLE public.plan_guardrails ADD COLUMN plan_id uuid NOT NULL;
|
|
END IF;
|
|
END;
|
|
$$;
|
|
|
|
DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.columns
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'agent_skills'
|
|
AND column_name = 'content'
|
|
) THEN
|
|
ALTER TABLE public.agent_skills ADD COLUMN content text NOT NULL;
|
|
END IF;
|
|
END;
|
|
$$;
|
|
|
|
DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.columns
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'agent_skills'
|
|
AND column_name = 'created_at'
|
|
) THEN
|
|
ALTER TABLE public.agent_skills ADD COLUMN created_at timestamptz NOT NULL DEFAULT now();
|
|
END IF;
|
|
END;
|
|
$$;
|
|
|
|
DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.columns
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'agent_skills'
|
|
AND column_name = 'description'
|
|
) THEN
|
|
ALTER TABLE public.agent_skills ADD COLUMN description text NOT NULL DEFAULT '';
|
|
END IF;
|
|
END;
|
|
$$;
|
|
|
|
DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.columns
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'agent_skills'
|
|
AND column_name = 'id'
|
|
) THEN
|
|
ALTER TABLE public.agent_skills ADD COLUMN id uuid NOT NULL DEFAULT gen_random_uuid();
|
|
END IF;
|
|
END;
|
|
$$;
|
|
|
|
DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.columns
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'agent_skills'
|
|
AND column_name = 'name'
|
|
) THEN
|
|
ALTER TABLE public.agent_skills ADD COLUMN name text NOT NULL;
|
|
END IF;
|
|
END;
|
|
$$;
|
|
|
|
DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.columns
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'agent_skills'
|
|
AND column_name = 'tags'
|
|
) THEN
|
|
ALTER TABLE public.agent_skills ADD COLUMN tags text[] NOT NULL DEFAULT '{}';
|
|
END IF;
|
|
END;
|
|
$$;
|
|
|
|
DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.columns
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'agent_skills'
|
|
AND column_name = 'updated_at'
|
|
) THEN
|
|
ALTER TABLE public.agent_skills ADD COLUMN updated_at timestamptz NOT NULL DEFAULT now();
|
|
END IF;
|
|
END;
|
|
$$;
|
|
|
|
DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.columns
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'agent_guardrails'
|
|
AND column_name = 'content'
|
|
) THEN
|
|
ALTER TABLE public.agent_guardrails ADD COLUMN content text NOT NULL;
|
|
END IF;
|
|
END;
|
|
$$;
|
|
|
|
DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.columns
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'agent_guardrails'
|
|
AND column_name = 'created_at'
|
|
) THEN
|
|
ALTER TABLE public.agent_guardrails ADD COLUMN created_at timestamptz NOT NULL DEFAULT now();
|
|
END IF;
|
|
END;
|
|
$$;
|
|
|
|
DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.columns
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'agent_guardrails'
|
|
AND column_name = 'description'
|
|
) THEN
|
|
ALTER TABLE public.agent_guardrails ADD COLUMN description text NOT NULL DEFAULT '';
|
|
END IF;
|
|
END;
|
|
$$;
|
|
|
|
DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.columns
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'agent_guardrails'
|
|
AND column_name = 'id'
|
|
) THEN
|
|
ALTER TABLE public.agent_guardrails ADD COLUMN id uuid NOT NULL DEFAULT gen_random_uuid();
|
|
END IF;
|
|
END;
|
|
$$;
|
|
|
|
DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.columns
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'agent_guardrails'
|
|
AND column_name = 'name'
|
|
) THEN
|
|
ALTER TABLE public.agent_guardrails ADD COLUMN name text NOT NULL;
|
|
END IF;
|
|
END;
|
|
$$;
|
|
|
|
DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.columns
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'agent_guardrails'
|
|
AND column_name = 'severity'
|
|
) THEN
|
|
ALTER TABLE public.agent_guardrails ADD COLUMN severity text NOT NULL DEFAULT 'medium';
|
|
END IF;
|
|
END;
|
|
$$;
|
|
|
|
DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.columns
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'agent_guardrails'
|
|
AND column_name = 'tags'
|
|
) THEN
|
|
ALTER TABLE public.agent_guardrails ADD COLUMN tags text[] NOT NULL DEFAULT '{}';
|
|
END IF;
|
|
END;
|
|
$$;
|
|
|
|
DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.columns
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'agent_guardrails'
|
|
AND column_name = 'updated_at'
|
|
) THEN
|
|
ALTER TABLE public.agent_guardrails ADD COLUMN updated_at timestamptz NOT NULL DEFAULT now();
|
|
END IF;
|
|
END;
|
|
$$;
|
|
|
|
DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.columns
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'project_skills'
|
|
AND column_name = 'created_at'
|
|
) THEN
|
|
ALTER TABLE public.project_skills ADD COLUMN created_at timestamptz NOT NULL DEFAULT now();
|
|
END IF;
|
|
END;
|
|
$$;
|
|
|
|
DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.columns
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'project_skills'
|
|
AND column_name = 'id'
|
|
) THEN
|
|
ALTER TABLE public.project_skills ADD COLUMN id serial NOT NULL;
|
|
END IF;
|
|
END;
|
|
$$;
|
|
|
|
DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.columns
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'project_skills'
|
|
AND column_name = 'project_id'
|
|
) THEN
|
|
ALTER TABLE public.project_skills ADD COLUMN project_id uuid NOT NULL;
|
|
END IF;
|
|
END;
|
|
$$;
|
|
|
|
DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.columns
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'project_skills'
|
|
AND column_name = 'skill_id'
|
|
) THEN
|
|
ALTER TABLE public.project_skills ADD COLUMN skill_id uuid NOT NULL;
|
|
END IF;
|
|
END;
|
|
$$;
|
|
|
|
DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.columns
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'project_guardrails'
|
|
AND column_name = 'created_at'
|
|
) THEN
|
|
ALTER TABLE public.project_guardrails ADD COLUMN created_at timestamptz NOT NULL DEFAULT now();
|
|
END IF;
|
|
END;
|
|
$$;
|
|
|
|
DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.columns
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'project_guardrails'
|
|
AND column_name = 'guardrail_id'
|
|
) THEN
|
|
ALTER TABLE public.project_guardrails ADD COLUMN guardrail_id uuid NOT NULL;
|
|
END IF;
|
|
END;
|
|
$$;
|
|
|
|
DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.columns
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'project_guardrails'
|
|
AND column_name = 'id'
|
|
) THEN
|
|
ALTER TABLE public.project_guardrails ADD COLUMN id serial NOT NULL;
|
|
END IF;
|
|
END;
|
|
$$;
|
|
|
|
DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.columns
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'project_guardrails'
|
|
AND column_name = 'project_id'
|
|
) THEN
|
|
ALTER TABLE public.project_guardrails ADD COLUMN project_id uuid NOT NULL;
|
|
END IF;
|
|
END;
|
|
$$;
|
|
|
|
-- Primary keys for schema: public
|
|
DO $$
|
|
DECLARE
|
|
auto_pk_name text;
|
|
BEGIN
|
|
-- Drop auto-generated primary key if it exists
|
|
SELECT constraint_name INTO auto_pk_name
|
|
FROM information_schema.table_constraints
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'family_members'
|
|
AND constraint_type = 'PRIMARY KEY'
|
|
AND constraint_name IN ('family_members_pkey', 'public_family_members_pkey');
|
|
|
|
IF auto_pk_name IS NOT NULL THEN
|
|
EXECUTE 'ALTER TABLE public.family_members DROP CONSTRAINT ' || quote_ident(auto_pk_name);
|
|
END IF;
|
|
|
|
-- Add named primary key if it doesn't exist
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.table_constraints
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'family_members'
|
|
AND constraint_name = 'pk_public_family_members'
|
|
) THEN
|
|
ALTER TABLE public.family_members ADD CONSTRAINT pk_public_family_members PRIMARY KEY (id);
|
|
END IF;
|
|
END;
|
|
$$;
|
|
|
|
DO $$
|
|
DECLARE
|
|
auto_pk_name text;
|
|
BEGIN
|
|
-- Drop auto-generated primary key if it exists
|
|
SELECT constraint_name INTO auto_pk_name
|
|
FROM information_schema.table_constraints
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'activities'
|
|
AND constraint_type = 'PRIMARY KEY'
|
|
AND constraint_name IN ('activities_pkey', 'public_activities_pkey');
|
|
|
|
IF auto_pk_name IS NOT NULL THEN
|
|
EXECUTE 'ALTER TABLE public.activities DROP CONSTRAINT ' || quote_ident(auto_pk_name);
|
|
END IF;
|
|
|
|
-- Add named primary key if it doesn't exist
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.table_constraints
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'activities'
|
|
AND constraint_name = 'pk_public_activities'
|
|
) THEN
|
|
ALTER TABLE public.activities ADD CONSTRAINT pk_public_activities PRIMARY KEY (id);
|
|
END IF;
|
|
END;
|
|
$$;
|
|
|
|
DO $$
|
|
DECLARE
|
|
auto_pk_name text;
|
|
BEGIN
|
|
-- Drop auto-generated primary key if it exists
|
|
SELECT constraint_name INTO auto_pk_name
|
|
FROM information_schema.table_constraints
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'important_dates'
|
|
AND constraint_type = 'PRIMARY KEY'
|
|
AND constraint_name IN ('important_dates_pkey', 'public_important_dates_pkey');
|
|
|
|
IF auto_pk_name IS NOT NULL THEN
|
|
EXECUTE 'ALTER TABLE public.important_dates DROP CONSTRAINT ' || quote_ident(auto_pk_name);
|
|
END IF;
|
|
|
|
-- Add named primary key if it doesn't exist
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.table_constraints
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'important_dates'
|
|
AND constraint_name = 'pk_public_important_dates'
|
|
) THEN
|
|
ALTER TABLE public.important_dates ADD CONSTRAINT pk_public_important_dates PRIMARY KEY (id);
|
|
END IF;
|
|
END;
|
|
$$;
|
|
|
|
DO $$
|
|
DECLARE
|
|
auto_pk_name text;
|
|
BEGIN
|
|
-- Drop auto-generated primary key if it exists
|
|
SELECT constraint_name INTO auto_pk_name
|
|
FROM information_schema.table_constraints
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'thoughts'
|
|
AND constraint_type = 'PRIMARY KEY'
|
|
AND constraint_name IN ('thoughts_pkey', 'public_thoughts_pkey');
|
|
|
|
IF auto_pk_name IS NOT NULL THEN
|
|
EXECUTE 'ALTER TABLE public.thoughts DROP CONSTRAINT ' || quote_ident(auto_pk_name);
|
|
END IF;
|
|
|
|
-- Add named primary key if it doesn't exist
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.table_constraints
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'thoughts'
|
|
AND constraint_name = 'pk_public_thoughts'
|
|
) THEN
|
|
ALTER TABLE public.thoughts ADD CONSTRAINT pk_public_thoughts PRIMARY KEY (id);
|
|
END IF;
|
|
END;
|
|
$$;
|
|
|
|
DO $$
|
|
DECLARE
|
|
auto_pk_name text;
|
|
BEGIN
|
|
-- Drop auto-generated primary key if it exists
|
|
SELECT constraint_name INTO auto_pk_name
|
|
FROM information_schema.table_constraints
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'projects'
|
|
AND constraint_type = 'PRIMARY KEY'
|
|
AND constraint_name IN ('projects_pkey', 'public_projects_pkey');
|
|
|
|
IF auto_pk_name IS NOT NULL THEN
|
|
EXECUTE 'ALTER TABLE public.projects DROP CONSTRAINT ' || quote_ident(auto_pk_name);
|
|
END IF;
|
|
|
|
-- Add named primary key if it doesn't exist
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.table_constraints
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'projects'
|
|
AND constraint_name = 'pk_public_projects'
|
|
) THEN
|
|
ALTER TABLE public.projects ADD CONSTRAINT pk_public_projects PRIMARY KEY (id);
|
|
END IF;
|
|
END;
|
|
$$;
|
|
|
|
DO $$
|
|
DECLARE
|
|
auto_pk_name text;
|
|
BEGIN
|
|
-- Drop auto-generated primary key if it exists
|
|
SELECT constraint_name INTO auto_pk_name
|
|
FROM information_schema.table_constraints
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'thought_links'
|
|
AND constraint_type = 'PRIMARY KEY'
|
|
AND constraint_name IN ('thought_links_pkey', 'public_thought_links_pkey');
|
|
|
|
IF auto_pk_name IS NOT NULL THEN
|
|
EXECUTE 'ALTER TABLE public.thought_links DROP CONSTRAINT ' || quote_ident(auto_pk_name);
|
|
END IF;
|
|
|
|
-- Add named primary key if it doesn't exist
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.table_constraints
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'thought_links'
|
|
AND constraint_name = 'pk_public_thought_links'
|
|
) THEN
|
|
ALTER TABLE public.thought_links ADD CONSTRAINT pk_public_thought_links PRIMARY KEY (id);
|
|
END IF;
|
|
END;
|
|
$$;
|
|
|
|
DO $$
|
|
DECLARE
|
|
auto_pk_name text;
|
|
BEGIN
|
|
-- Drop auto-generated primary key if it exists
|
|
SELECT constraint_name INTO auto_pk_name
|
|
FROM information_schema.table_constraints
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'embeddings'
|
|
AND constraint_type = 'PRIMARY KEY'
|
|
AND constraint_name IN ('embeddings_pkey', 'public_embeddings_pkey');
|
|
|
|
IF auto_pk_name IS NOT NULL THEN
|
|
EXECUTE 'ALTER TABLE public.embeddings DROP CONSTRAINT ' || quote_ident(auto_pk_name);
|
|
END IF;
|
|
|
|
-- Add named primary key if it doesn't exist
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.table_constraints
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'embeddings'
|
|
AND constraint_name = 'pk_public_embeddings'
|
|
) THEN
|
|
ALTER TABLE public.embeddings ADD CONSTRAINT pk_public_embeddings PRIMARY KEY (id);
|
|
END IF;
|
|
END;
|
|
$$;
|
|
|
|
DO $$
|
|
DECLARE
|
|
auto_pk_name text;
|
|
BEGIN
|
|
-- Drop auto-generated primary key if it exists
|
|
SELECT constraint_name INTO auto_pk_name
|
|
FROM information_schema.table_constraints
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'professional_contacts'
|
|
AND constraint_type = 'PRIMARY KEY'
|
|
AND constraint_name IN ('professional_contacts_pkey', 'public_professional_contacts_pkey');
|
|
|
|
IF auto_pk_name IS NOT NULL THEN
|
|
EXECUTE 'ALTER TABLE public.professional_contacts DROP CONSTRAINT ' || quote_ident(auto_pk_name);
|
|
END IF;
|
|
|
|
-- Add named primary key if it doesn't exist
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.table_constraints
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'professional_contacts'
|
|
AND constraint_name = 'pk_public_professional_contacts'
|
|
) THEN
|
|
ALTER TABLE public.professional_contacts ADD CONSTRAINT pk_public_professional_contacts PRIMARY KEY (id);
|
|
END IF;
|
|
END;
|
|
$$;
|
|
|
|
DO $$
|
|
DECLARE
|
|
auto_pk_name text;
|
|
BEGIN
|
|
-- Drop auto-generated primary key if it exists
|
|
SELECT constraint_name INTO auto_pk_name
|
|
FROM information_schema.table_constraints
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'contact_interactions'
|
|
AND constraint_type = 'PRIMARY KEY'
|
|
AND constraint_name IN ('contact_interactions_pkey', 'public_contact_interactions_pkey');
|
|
|
|
IF auto_pk_name IS NOT NULL THEN
|
|
EXECUTE 'ALTER TABLE public.contact_interactions DROP CONSTRAINT ' || quote_ident(auto_pk_name);
|
|
END IF;
|
|
|
|
-- Add named primary key if it doesn't exist
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.table_constraints
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'contact_interactions'
|
|
AND constraint_name = 'pk_public_contact_interactions'
|
|
) THEN
|
|
ALTER TABLE public.contact_interactions ADD CONSTRAINT pk_public_contact_interactions PRIMARY KEY (id);
|
|
END IF;
|
|
END;
|
|
$$;
|
|
|
|
DO $$
|
|
DECLARE
|
|
auto_pk_name text;
|
|
BEGIN
|
|
-- Drop auto-generated primary key if it exists
|
|
SELECT constraint_name INTO auto_pk_name
|
|
FROM information_schema.table_constraints
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'opportunities'
|
|
AND constraint_type = 'PRIMARY KEY'
|
|
AND constraint_name IN ('opportunities_pkey', 'public_opportunities_pkey');
|
|
|
|
IF auto_pk_name IS NOT NULL THEN
|
|
EXECUTE 'ALTER TABLE public.opportunities DROP CONSTRAINT ' || quote_ident(auto_pk_name);
|
|
END IF;
|
|
|
|
-- Add named primary key if it doesn't exist
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.table_constraints
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'opportunities'
|
|
AND constraint_name = 'pk_public_opportunities'
|
|
) THEN
|
|
ALTER TABLE public.opportunities ADD CONSTRAINT pk_public_opportunities PRIMARY KEY (id);
|
|
END IF;
|
|
END;
|
|
$$;
|
|
|
|
DO $$
|
|
DECLARE
|
|
auto_pk_name text;
|
|
BEGIN
|
|
-- Drop auto-generated primary key if it exists
|
|
SELECT constraint_name INTO auto_pk_name
|
|
FROM information_schema.table_constraints
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'stored_files'
|
|
AND constraint_type = 'PRIMARY KEY'
|
|
AND constraint_name IN ('stored_files_pkey', 'public_stored_files_pkey');
|
|
|
|
IF auto_pk_name IS NOT NULL THEN
|
|
EXECUTE 'ALTER TABLE public.stored_files DROP CONSTRAINT ' || quote_ident(auto_pk_name);
|
|
END IF;
|
|
|
|
-- Add named primary key if it doesn't exist
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.table_constraints
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'stored_files'
|
|
AND constraint_name = 'pk_public_stored_files'
|
|
) THEN
|
|
ALTER TABLE public.stored_files ADD CONSTRAINT pk_public_stored_files PRIMARY KEY (id);
|
|
END IF;
|
|
END;
|
|
$$;
|
|
|
|
DO $$
|
|
DECLARE
|
|
auto_pk_name text;
|
|
BEGIN
|
|
-- Drop auto-generated primary key if it exists
|
|
SELECT constraint_name INTO auto_pk_name
|
|
FROM information_schema.table_constraints
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'household_items'
|
|
AND constraint_type = 'PRIMARY KEY'
|
|
AND constraint_name IN ('household_items_pkey', 'public_household_items_pkey');
|
|
|
|
IF auto_pk_name IS NOT NULL THEN
|
|
EXECUTE 'ALTER TABLE public.household_items DROP CONSTRAINT ' || quote_ident(auto_pk_name);
|
|
END IF;
|
|
|
|
-- Add named primary key if it doesn't exist
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.table_constraints
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'household_items'
|
|
AND constraint_name = 'pk_public_household_items'
|
|
) THEN
|
|
ALTER TABLE public.household_items ADD CONSTRAINT pk_public_household_items PRIMARY KEY (id);
|
|
END IF;
|
|
END;
|
|
$$;
|
|
|
|
DO $$
|
|
DECLARE
|
|
auto_pk_name text;
|
|
BEGIN
|
|
-- Drop auto-generated primary key if it exists
|
|
SELECT constraint_name INTO auto_pk_name
|
|
FROM information_schema.table_constraints
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'household_vendors'
|
|
AND constraint_type = 'PRIMARY KEY'
|
|
AND constraint_name IN ('household_vendors_pkey', 'public_household_vendors_pkey');
|
|
|
|
IF auto_pk_name IS NOT NULL THEN
|
|
EXECUTE 'ALTER TABLE public.household_vendors DROP CONSTRAINT ' || quote_ident(auto_pk_name);
|
|
END IF;
|
|
|
|
-- Add named primary key if it doesn't exist
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.table_constraints
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'household_vendors'
|
|
AND constraint_name = 'pk_public_household_vendors'
|
|
) THEN
|
|
ALTER TABLE public.household_vendors ADD CONSTRAINT pk_public_household_vendors PRIMARY KEY (id);
|
|
END IF;
|
|
END;
|
|
$$;
|
|
|
|
DO $$
|
|
DECLARE
|
|
auto_pk_name text;
|
|
BEGIN
|
|
-- Drop auto-generated primary key if it exists
|
|
SELECT constraint_name INTO auto_pk_name
|
|
FROM information_schema.table_constraints
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'maintenance_tasks'
|
|
AND constraint_type = 'PRIMARY KEY'
|
|
AND constraint_name IN ('maintenance_tasks_pkey', 'public_maintenance_tasks_pkey');
|
|
|
|
IF auto_pk_name IS NOT NULL THEN
|
|
EXECUTE 'ALTER TABLE public.maintenance_tasks DROP CONSTRAINT ' || quote_ident(auto_pk_name);
|
|
END IF;
|
|
|
|
-- Add named primary key if it doesn't exist
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.table_constraints
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'maintenance_tasks'
|
|
AND constraint_name = 'pk_public_maintenance_tasks'
|
|
) THEN
|
|
ALTER TABLE public.maintenance_tasks ADD CONSTRAINT pk_public_maintenance_tasks PRIMARY KEY (id);
|
|
END IF;
|
|
END;
|
|
$$;
|
|
|
|
DO $$
|
|
DECLARE
|
|
auto_pk_name text;
|
|
BEGIN
|
|
-- Drop auto-generated primary key if it exists
|
|
SELECT constraint_name INTO auto_pk_name
|
|
FROM information_schema.table_constraints
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'maintenance_logs'
|
|
AND constraint_type = 'PRIMARY KEY'
|
|
AND constraint_name IN ('maintenance_logs_pkey', 'public_maintenance_logs_pkey');
|
|
|
|
IF auto_pk_name IS NOT NULL THEN
|
|
EXECUTE 'ALTER TABLE public.maintenance_logs DROP CONSTRAINT ' || quote_ident(auto_pk_name);
|
|
END IF;
|
|
|
|
-- Add named primary key if it doesn't exist
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.table_constraints
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'maintenance_logs'
|
|
AND constraint_name = 'pk_public_maintenance_logs'
|
|
) THEN
|
|
ALTER TABLE public.maintenance_logs ADD CONSTRAINT pk_public_maintenance_logs PRIMARY KEY (id);
|
|
END IF;
|
|
END;
|
|
$$;
|
|
|
|
DO $$
|
|
DECLARE
|
|
auto_pk_name text;
|
|
BEGIN
|
|
-- Drop auto-generated primary key if it exists
|
|
SELECT constraint_name INTO auto_pk_name
|
|
FROM information_schema.table_constraints
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'recipes'
|
|
AND constraint_type = 'PRIMARY KEY'
|
|
AND constraint_name IN ('recipes_pkey', 'public_recipes_pkey');
|
|
|
|
IF auto_pk_name IS NOT NULL THEN
|
|
EXECUTE 'ALTER TABLE public.recipes DROP CONSTRAINT ' || quote_ident(auto_pk_name);
|
|
END IF;
|
|
|
|
-- Add named primary key if it doesn't exist
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.table_constraints
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'recipes'
|
|
AND constraint_name = 'pk_public_recipes'
|
|
) THEN
|
|
ALTER TABLE public.recipes ADD CONSTRAINT pk_public_recipes PRIMARY KEY (id);
|
|
END IF;
|
|
END;
|
|
$$;
|
|
|
|
DO $$
|
|
DECLARE
|
|
auto_pk_name text;
|
|
BEGIN
|
|
-- Drop auto-generated primary key if it exists
|
|
SELECT constraint_name INTO auto_pk_name
|
|
FROM information_schema.table_constraints
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'meal_plans'
|
|
AND constraint_type = 'PRIMARY KEY'
|
|
AND constraint_name IN ('meal_plans_pkey', 'public_meal_plans_pkey');
|
|
|
|
IF auto_pk_name IS NOT NULL THEN
|
|
EXECUTE 'ALTER TABLE public.meal_plans DROP CONSTRAINT ' || quote_ident(auto_pk_name);
|
|
END IF;
|
|
|
|
-- Add named primary key if it doesn't exist
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.table_constraints
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'meal_plans'
|
|
AND constraint_name = 'pk_public_meal_plans'
|
|
) THEN
|
|
ALTER TABLE public.meal_plans ADD CONSTRAINT pk_public_meal_plans PRIMARY KEY (id);
|
|
END IF;
|
|
END;
|
|
$$;
|
|
|
|
DO $$
|
|
DECLARE
|
|
auto_pk_name text;
|
|
BEGIN
|
|
-- Drop auto-generated primary key if it exists
|
|
SELECT constraint_name INTO auto_pk_name
|
|
FROM information_schema.table_constraints
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'shopping_lists'
|
|
AND constraint_type = 'PRIMARY KEY'
|
|
AND constraint_name IN ('shopping_lists_pkey', 'public_shopping_lists_pkey');
|
|
|
|
IF auto_pk_name IS NOT NULL THEN
|
|
EXECUTE 'ALTER TABLE public.shopping_lists DROP CONSTRAINT ' || quote_ident(auto_pk_name);
|
|
END IF;
|
|
|
|
-- Add named primary key if it doesn't exist
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.table_constraints
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'shopping_lists'
|
|
AND constraint_name = 'pk_public_shopping_lists'
|
|
) THEN
|
|
ALTER TABLE public.shopping_lists ADD CONSTRAINT pk_public_shopping_lists PRIMARY KEY (id);
|
|
END IF;
|
|
END;
|
|
$$;
|
|
|
|
DO $$
|
|
DECLARE
|
|
auto_pk_name text;
|
|
BEGIN
|
|
-- Drop auto-generated primary key if it exists
|
|
SELECT constraint_name INTO auto_pk_name
|
|
FROM information_schema.table_constraints
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'chat_histories'
|
|
AND constraint_type = 'PRIMARY KEY'
|
|
AND constraint_name IN ('chat_histories_pkey', 'public_chat_histories_pkey');
|
|
|
|
IF auto_pk_name IS NOT NULL THEN
|
|
EXECUTE 'ALTER TABLE public.chat_histories DROP CONSTRAINT ' || quote_ident(auto_pk_name);
|
|
END IF;
|
|
|
|
-- Add named primary key if it doesn't exist
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.table_constraints
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'chat_histories'
|
|
AND constraint_name = 'pk_public_chat_histories'
|
|
) THEN
|
|
ALTER TABLE public.chat_histories ADD CONSTRAINT pk_public_chat_histories PRIMARY KEY (id);
|
|
END IF;
|
|
END;
|
|
$$;
|
|
|
|
DO $$
|
|
DECLARE
|
|
auto_pk_name text;
|
|
BEGIN
|
|
-- Drop auto-generated primary key if it exists
|
|
SELECT constraint_name INTO auto_pk_name
|
|
FROM information_schema.table_constraints
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'tool_annotations'
|
|
AND constraint_type = 'PRIMARY KEY'
|
|
AND constraint_name IN ('tool_annotations_pkey', 'public_tool_annotations_pkey');
|
|
|
|
IF auto_pk_name IS NOT NULL THEN
|
|
EXECUTE 'ALTER TABLE public.tool_annotations DROP CONSTRAINT ' || quote_ident(auto_pk_name);
|
|
END IF;
|
|
|
|
-- Add named primary key if it doesn't exist
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.table_constraints
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'tool_annotations'
|
|
AND constraint_name = 'pk_public_tool_annotations'
|
|
) THEN
|
|
ALTER TABLE public.tool_annotations ADD CONSTRAINT pk_public_tool_annotations PRIMARY KEY (id);
|
|
END IF;
|
|
END;
|
|
$$;
|
|
|
|
DO $$
|
|
DECLARE
|
|
auto_pk_name text;
|
|
BEGIN
|
|
-- Drop auto-generated primary key if it exists
|
|
SELECT constraint_name INTO auto_pk_name
|
|
FROM information_schema.table_constraints
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'learnings'
|
|
AND constraint_type = 'PRIMARY KEY'
|
|
AND constraint_name IN ('learnings_pkey', 'public_learnings_pkey');
|
|
|
|
IF auto_pk_name IS NOT NULL THEN
|
|
EXECUTE 'ALTER TABLE public.learnings DROP CONSTRAINT ' || quote_ident(auto_pk_name);
|
|
END IF;
|
|
|
|
-- Add named primary key if it doesn't exist
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.table_constraints
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'learnings'
|
|
AND constraint_name = 'pk_public_learnings'
|
|
) THEN
|
|
ALTER TABLE public.learnings ADD CONSTRAINT pk_public_learnings PRIMARY KEY (id);
|
|
END IF;
|
|
END;
|
|
$$;
|
|
|
|
DO $$
|
|
DECLARE
|
|
auto_pk_name text;
|
|
BEGIN
|
|
-- Drop auto-generated primary key if it exists
|
|
SELECT constraint_name INTO auto_pk_name
|
|
FROM information_schema.table_constraints
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'plans'
|
|
AND constraint_type = 'PRIMARY KEY'
|
|
AND constraint_name IN ('plans_pkey', 'public_plans_pkey');
|
|
|
|
IF auto_pk_name IS NOT NULL THEN
|
|
EXECUTE 'ALTER TABLE public.plans DROP CONSTRAINT ' || quote_ident(auto_pk_name);
|
|
END IF;
|
|
|
|
-- Add named primary key if it doesn't exist
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.table_constraints
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'plans'
|
|
AND constraint_name = 'pk_public_plans'
|
|
) THEN
|
|
ALTER TABLE public.plans ADD CONSTRAINT pk_public_plans PRIMARY KEY (id);
|
|
END IF;
|
|
END;
|
|
$$;
|
|
|
|
DO $$
|
|
DECLARE
|
|
auto_pk_name text;
|
|
BEGIN
|
|
-- Drop auto-generated primary key if it exists
|
|
SELECT constraint_name INTO auto_pk_name
|
|
FROM information_schema.table_constraints
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'plan_dependencies'
|
|
AND constraint_type = 'PRIMARY KEY'
|
|
AND constraint_name IN ('plan_dependencies_pkey', 'public_plan_dependencies_pkey');
|
|
|
|
IF auto_pk_name IS NOT NULL THEN
|
|
EXECUTE 'ALTER TABLE public.plan_dependencies DROP CONSTRAINT ' || quote_ident(auto_pk_name);
|
|
END IF;
|
|
|
|
-- Add named primary key if it doesn't exist
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.table_constraints
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'plan_dependencies'
|
|
AND constraint_name = 'pk_public_plan_dependencies'
|
|
) THEN
|
|
ALTER TABLE public.plan_dependencies ADD CONSTRAINT pk_public_plan_dependencies PRIMARY KEY (id);
|
|
END IF;
|
|
END;
|
|
$$;
|
|
|
|
DO $$
|
|
DECLARE
|
|
auto_pk_name text;
|
|
BEGIN
|
|
-- Drop auto-generated primary key if it exists
|
|
SELECT constraint_name INTO auto_pk_name
|
|
FROM information_schema.table_constraints
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'plan_related_plans'
|
|
AND constraint_type = 'PRIMARY KEY'
|
|
AND constraint_name IN ('plan_related_plans_pkey', 'public_plan_related_plans_pkey');
|
|
|
|
IF auto_pk_name IS NOT NULL THEN
|
|
EXECUTE 'ALTER TABLE public.plan_related_plans DROP CONSTRAINT ' || quote_ident(auto_pk_name);
|
|
END IF;
|
|
|
|
-- Add named primary key if it doesn't exist
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.table_constraints
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'plan_related_plans'
|
|
AND constraint_name = 'pk_public_plan_related_plans'
|
|
) THEN
|
|
ALTER TABLE public.plan_related_plans ADD CONSTRAINT pk_public_plan_related_plans PRIMARY KEY (id);
|
|
END IF;
|
|
END;
|
|
$$;
|
|
|
|
DO $$
|
|
DECLARE
|
|
auto_pk_name text;
|
|
BEGIN
|
|
-- Drop auto-generated primary key if it exists
|
|
SELECT constraint_name INTO auto_pk_name
|
|
FROM information_schema.table_constraints
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'plan_skills'
|
|
AND constraint_type = 'PRIMARY KEY'
|
|
AND constraint_name IN ('plan_skills_pkey', 'public_plan_skills_pkey');
|
|
|
|
IF auto_pk_name IS NOT NULL THEN
|
|
EXECUTE 'ALTER TABLE public.plan_skills DROP CONSTRAINT ' || quote_ident(auto_pk_name);
|
|
END IF;
|
|
|
|
-- Add named primary key if it doesn't exist
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.table_constraints
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'plan_skills'
|
|
AND constraint_name = 'pk_public_plan_skills'
|
|
) THEN
|
|
ALTER TABLE public.plan_skills ADD CONSTRAINT pk_public_plan_skills PRIMARY KEY (id);
|
|
END IF;
|
|
END;
|
|
$$;
|
|
|
|
DO $$
|
|
DECLARE
|
|
auto_pk_name text;
|
|
BEGIN
|
|
-- Drop auto-generated primary key if it exists
|
|
SELECT constraint_name INTO auto_pk_name
|
|
FROM information_schema.table_constraints
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'plan_guardrails'
|
|
AND constraint_type = 'PRIMARY KEY'
|
|
AND constraint_name IN ('plan_guardrails_pkey', 'public_plan_guardrails_pkey');
|
|
|
|
IF auto_pk_name IS NOT NULL THEN
|
|
EXECUTE 'ALTER TABLE public.plan_guardrails DROP CONSTRAINT ' || quote_ident(auto_pk_name);
|
|
END IF;
|
|
|
|
-- Add named primary key if it doesn't exist
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.table_constraints
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'plan_guardrails'
|
|
AND constraint_name = 'pk_public_plan_guardrails'
|
|
) THEN
|
|
ALTER TABLE public.plan_guardrails ADD CONSTRAINT pk_public_plan_guardrails PRIMARY KEY (id);
|
|
END IF;
|
|
END;
|
|
$$;
|
|
|
|
DO $$
|
|
DECLARE
|
|
auto_pk_name text;
|
|
BEGIN
|
|
-- Drop auto-generated primary key if it exists
|
|
SELECT constraint_name INTO auto_pk_name
|
|
FROM information_schema.table_constraints
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'agent_skills'
|
|
AND constraint_type = 'PRIMARY KEY'
|
|
AND constraint_name IN ('agent_skills_pkey', 'public_agent_skills_pkey');
|
|
|
|
IF auto_pk_name IS NOT NULL THEN
|
|
EXECUTE 'ALTER TABLE public.agent_skills DROP CONSTRAINT ' || quote_ident(auto_pk_name);
|
|
END IF;
|
|
|
|
-- Add named primary key if it doesn't exist
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.table_constraints
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'agent_skills'
|
|
AND constraint_name = 'pk_public_agent_skills'
|
|
) THEN
|
|
ALTER TABLE public.agent_skills ADD CONSTRAINT pk_public_agent_skills PRIMARY KEY (id);
|
|
END IF;
|
|
END;
|
|
$$;
|
|
|
|
DO $$
|
|
DECLARE
|
|
auto_pk_name text;
|
|
BEGIN
|
|
-- Drop auto-generated primary key if it exists
|
|
SELECT constraint_name INTO auto_pk_name
|
|
FROM information_schema.table_constraints
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'agent_guardrails'
|
|
AND constraint_type = 'PRIMARY KEY'
|
|
AND constraint_name IN ('agent_guardrails_pkey', 'public_agent_guardrails_pkey');
|
|
|
|
IF auto_pk_name IS NOT NULL THEN
|
|
EXECUTE 'ALTER TABLE public.agent_guardrails DROP CONSTRAINT ' || quote_ident(auto_pk_name);
|
|
END IF;
|
|
|
|
-- Add named primary key if it doesn't exist
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.table_constraints
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'agent_guardrails'
|
|
AND constraint_name = 'pk_public_agent_guardrails'
|
|
) THEN
|
|
ALTER TABLE public.agent_guardrails ADD CONSTRAINT pk_public_agent_guardrails PRIMARY KEY (id);
|
|
END IF;
|
|
END;
|
|
$$;
|
|
|
|
DO $$
|
|
DECLARE
|
|
auto_pk_name text;
|
|
BEGIN
|
|
-- Drop auto-generated primary key if it exists
|
|
SELECT constraint_name INTO auto_pk_name
|
|
FROM information_schema.table_constraints
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'project_skills'
|
|
AND constraint_type = 'PRIMARY KEY'
|
|
AND constraint_name IN ('project_skills_pkey', 'public_project_skills_pkey');
|
|
|
|
IF auto_pk_name IS NOT NULL THEN
|
|
EXECUTE 'ALTER TABLE public.project_skills DROP CONSTRAINT ' || quote_ident(auto_pk_name);
|
|
END IF;
|
|
|
|
-- Add named primary key if it doesn't exist
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.table_constraints
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'project_skills'
|
|
AND constraint_name = 'pk_public_project_skills'
|
|
) THEN
|
|
ALTER TABLE public.project_skills ADD CONSTRAINT pk_public_project_skills PRIMARY KEY (id);
|
|
END IF;
|
|
END;
|
|
$$;
|
|
|
|
DO $$
|
|
DECLARE
|
|
auto_pk_name text;
|
|
BEGIN
|
|
-- Drop auto-generated primary key if it exists
|
|
SELECT constraint_name INTO auto_pk_name
|
|
FROM information_schema.table_constraints
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'project_guardrails'
|
|
AND constraint_type = 'PRIMARY KEY'
|
|
AND constraint_name IN ('project_guardrails_pkey', 'public_project_guardrails_pkey');
|
|
|
|
IF auto_pk_name IS NOT NULL THEN
|
|
EXECUTE 'ALTER TABLE public.project_guardrails DROP CONSTRAINT ' || quote_ident(auto_pk_name);
|
|
END IF;
|
|
|
|
-- Add named primary key if it doesn't exist
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.table_constraints
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'project_guardrails'
|
|
AND constraint_name = 'pk_public_project_guardrails'
|
|
) THEN
|
|
ALTER TABLE public.project_guardrails ADD CONSTRAINT pk_public_project_guardrails PRIMARY KEY (id);
|
|
END IF;
|
|
END;
|
|
$$;
|
|
|
|
-- Indexes for schema: public
|
|
CREATE INDEX IF NOT EXISTS idx_activities_start_date_end_date
|
|
ON public.activities USING btree (start_date, end_date);
|
|
|
|
CREATE INDEX IF NOT EXISTS idx_thought_links_from_id_to_id_relation
|
|
ON public.thought_links USING btree (from_id, to_id, relation);
|
|
|
|
CREATE UNIQUE INDEX IF NOT EXISTS uidx_embeddings_thought_id_model
|
|
ON public.embeddings USING btree (thought_id, model);
|
|
|
|
CREATE INDEX IF NOT EXISTS idx_contact_interactions_contact_id_occurred_at
|
|
ON public.contact_interactions USING btree (contact_id, occurred_at);
|
|
|
|
CREATE INDEX IF NOT EXISTS idx_maintenance_logs_task_id_completed_at
|
|
ON public.maintenance_logs USING btree (task_id, completed_at);
|
|
|
|
CREATE INDEX IF NOT EXISTS idx_learnings_details
|
|
ON public.learnings USING gin (details gin_trgm_ops);
|
|
|
|
CREATE INDEX IF NOT EXISTS idx_learnings_summary
|
|
ON public.learnings USING gin (summary gin_trgm_ops);
|
|
|
|
CREATE INDEX IF NOT EXISTS idx_learnings_tags
|
|
ON public.learnings USING gin (tags gin_trgm_ops);
|
|
|
|
CREATE INDEX IF NOT EXISTS idx_plans_tags
|
|
ON public.plans USING gin (tags);
|
|
|
|
CREATE INDEX IF NOT EXISTS idx_plans_title
|
|
ON public.plans USING gin (title gin_trgm_ops);
|
|
|
|
CREATE UNIQUE INDEX IF NOT EXISTS uidx_plan_dependencies_plan_id_depends_on_plan_id
|
|
ON public.plan_dependencies USING btree (plan_id, depends_on_plan_id);
|
|
|
|
CREATE UNIQUE INDEX IF NOT EXISTS uidx_plan_related_plans_plan_a_id_plan_b_id
|
|
ON public.plan_related_plans USING btree (plan_a_id, plan_b_id);
|
|
|
|
CREATE UNIQUE INDEX IF NOT EXISTS uidx_plan_skills_plan_id_skill_id
|
|
ON public.plan_skills USING btree (plan_id, skill_id);
|
|
|
|
CREATE UNIQUE INDEX IF NOT EXISTS uidx_plan_guardrails_plan_id_guardrail_id
|
|
ON public.plan_guardrails USING btree (plan_id, guardrail_id);
|
|
|
|
CREATE INDEX IF NOT EXISTS idx_project_skills_project_id_skill_id
|
|
ON public.project_skills USING btree (project_id, skill_id);
|
|
|
|
CREATE INDEX IF NOT EXISTS idx_project_guardrails_project_id_guardrail_id
|
|
ON public.project_guardrails USING btree (project_id, guardrail_id);
|
|
|
|
-- Unique constraints for schema: public
|
|
DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.table_constraints
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'thoughts'
|
|
AND constraint_name = 'ukey_thoughts_guid'
|
|
) THEN
|
|
ALTER TABLE public.thoughts ADD CONSTRAINT ukey_thoughts_guid UNIQUE (guid);
|
|
END IF;
|
|
END;
|
|
$$;
|
|
|
|
DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.table_constraints
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'projects'
|
|
AND constraint_name = 'ukey_projects_guid'
|
|
) THEN
|
|
ALTER TABLE public.projects ADD CONSTRAINT ukey_projects_guid UNIQUE (guid);
|
|
END IF;
|
|
END;
|
|
$$;
|
|
|
|
DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.table_constraints
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'projects'
|
|
AND constraint_name = 'ukey_projects_name'
|
|
) THEN
|
|
ALTER TABLE public.projects ADD CONSTRAINT ukey_projects_name UNIQUE (name);
|
|
END IF;
|
|
END;
|
|
$$;
|
|
|
|
DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.table_constraints
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'embeddings'
|
|
AND constraint_name = 'ukey_embeddings_guid'
|
|
) THEN
|
|
ALTER TABLE public.embeddings ADD CONSTRAINT ukey_embeddings_guid UNIQUE (guid);
|
|
END IF;
|
|
END;
|
|
$$;
|
|
|
|
DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.table_constraints
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'stored_files'
|
|
AND constraint_name = 'ukey_stored_files_guid'
|
|
) THEN
|
|
ALTER TABLE public.stored_files ADD CONSTRAINT ukey_stored_files_guid UNIQUE (guid);
|
|
END IF;
|
|
END;
|
|
$$;
|
|
|
|
DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.table_constraints
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'shopping_lists'
|
|
AND constraint_name = 'ukey_shopping_lists_week_start'
|
|
) THEN
|
|
ALTER TABLE public.shopping_lists ADD CONSTRAINT ukey_shopping_lists_week_start UNIQUE (week_start);
|
|
END IF;
|
|
END;
|
|
$$;
|
|
|
|
DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.table_constraints
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'tool_annotations'
|
|
AND constraint_name = 'ukey_tool_annotations_tool_name'
|
|
) THEN
|
|
ALTER TABLE public.tool_annotations ADD CONSTRAINT ukey_tool_annotations_tool_name UNIQUE (tool_name);
|
|
END IF;
|
|
END;
|
|
$$;
|
|
|
|
DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.table_constraints
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'agent_skills'
|
|
AND constraint_name = 'ukey_agent_skills_name'
|
|
) THEN
|
|
ALTER TABLE public.agent_skills ADD CONSTRAINT ukey_agent_skills_name UNIQUE (name);
|
|
END IF;
|
|
END;
|
|
$$;
|
|
|
|
DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.table_constraints
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'agent_guardrails'
|
|
AND constraint_name = 'ukey_agent_guardrails_name'
|
|
) THEN
|
|
ALTER TABLE public.agent_guardrails ADD CONSTRAINT ukey_agent_guardrails_name UNIQUE (name);
|
|
END IF;
|
|
END;
|
|
$$;
|
|
|
|
-- Check constraints for schema: public
|
|
-- Foreign keys for schema: public
|
|
DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.table_constraints
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'activities'
|
|
AND constraint_name = 'fk_activities_family_member_id'
|
|
) THEN
|
|
ALTER TABLE public.activities
|
|
ADD CONSTRAINT fk_activities_family_member_id
|
|
FOREIGN KEY (family_member_id)
|
|
REFERENCES public.family_members (id)
|
|
ON DELETE NO ACTION
|
|
ON UPDATE NO ACTION;
|
|
END IF;
|
|
END;
|
|
$$;DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.table_constraints
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'important_dates'
|
|
AND constraint_name = 'fk_important_dates_family_member_id'
|
|
) THEN
|
|
ALTER TABLE public.important_dates
|
|
ADD CONSTRAINT fk_important_dates_family_member_id
|
|
FOREIGN KEY (family_member_id)
|
|
REFERENCES public.family_members (id)
|
|
ON DELETE NO ACTION
|
|
ON UPDATE NO ACTION;
|
|
END IF;
|
|
END;
|
|
$$;DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.table_constraints
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'thoughts'
|
|
AND constraint_name = 'fk_thoughts_project_id'
|
|
) THEN
|
|
ALTER TABLE public.thoughts
|
|
ADD CONSTRAINT fk_thoughts_project_id
|
|
FOREIGN KEY (project_id)
|
|
REFERENCES public.projects (guid)
|
|
ON DELETE NO ACTION
|
|
ON UPDATE NO ACTION;
|
|
END IF;
|
|
END;
|
|
$$;DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.table_constraints
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'thought_links'
|
|
AND constraint_name = 'fk_thought_links_from_id'
|
|
) THEN
|
|
ALTER TABLE public.thought_links
|
|
ADD CONSTRAINT fk_thought_links_from_id
|
|
FOREIGN KEY (from_id)
|
|
REFERENCES public.thoughts (id)
|
|
ON DELETE NO ACTION
|
|
ON UPDATE NO ACTION;
|
|
END IF;
|
|
END;
|
|
$$;DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.table_constraints
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'thought_links'
|
|
AND constraint_name = 'fk_thought_links_to_id'
|
|
) THEN
|
|
ALTER TABLE public.thought_links
|
|
ADD CONSTRAINT fk_thought_links_to_id
|
|
FOREIGN KEY (to_id)
|
|
REFERENCES public.thoughts (id)
|
|
ON DELETE NO ACTION
|
|
ON UPDATE NO ACTION;
|
|
END IF;
|
|
END;
|
|
$$;DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.table_constraints
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'embeddings'
|
|
AND constraint_name = 'fk_embeddings_thought_id'
|
|
) THEN
|
|
ALTER TABLE public.embeddings
|
|
ADD CONSTRAINT fk_embeddings_thought_id
|
|
FOREIGN KEY (thought_id)
|
|
REFERENCES public.thoughts (guid)
|
|
ON DELETE NO ACTION
|
|
ON UPDATE NO ACTION;
|
|
END IF;
|
|
END;
|
|
$$;DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.table_constraints
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'contact_interactions'
|
|
AND constraint_name = 'fk_contact_interactions_contact_id'
|
|
) THEN
|
|
ALTER TABLE public.contact_interactions
|
|
ADD CONSTRAINT fk_contact_interactions_contact_id
|
|
FOREIGN KEY (contact_id)
|
|
REFERENCES public.professional_contacts (id)
|
|
ON DELETE NO ACTION
|
|
ON UPDATE NO ACTION;
|
|
END IF;
|
|
END;
|
|
$$;DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.table_constraints
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'opportunities'
|
|
AND constraint_name = 'fk_opportunities_contact_id'
|
|
) THEN
|
|
ALTER TABLE public.opportunities
|
|
ADD CONSTRAINT fk_opportunities_contact_id
|
|
FOREIGN KEY (contact_id)
|
|
REFERENCES public.professional_contacts (id)
|
|
ON DELETE NO ACTION
|
|
ON UPDATE NO ACTION;
|
|
END IF;
|
|
END;
|
|
$$;DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.table_constraints
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'stored_files'
|
|
AND constraint_name = 'fk_stored_files_project_id'
|
|
) THEN
|
|
ALTER TABLE public.stored_files
|
|
ADD CONSTRAINT fk_stored_files_project_id
|
|
FOREIGN KEY (project_id)
|
|
REFERENCES public.projects (guid)
|
|
ON DELETE NO ACTION
|
|
ON UPDATE NO ACTION;
|
|
END IF;
|
|
END;
|
|
$$;DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.table_constraints
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'stored_files'
|
|
AND constraint_name = 'fk_stored_files_thought_id'
|
|
) THEN
|
|
ALTER TABLE public.stored_files
|
|
ADD CONSTRAINT fk_stored_files_thought_id
|
|
FOREIGN KEY (thought_id)
|
|
REFERENCES public.thoughts (guid)
|
|
ON DELETE NO ACTION
|
|
ON UPDATE NO ACTION;
|
|
END IF;
|
|
END;
|
|
$$;DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.table_constraints
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'maintenance_logs'
|
|
AND constraint_name = 'fk_maintenance_logs_task_id'
|
|
) THEN
|
|
ALTER TABLE public.maintenance_logs
|
|
ADD CONSTRAINT fk_maintenance_logs_task_id
|
|
FOREIGN KEY (task_id)
|
|
REFERENCES public.maintenance_tasks (id)
|
|
ON DELETE NO ACTION
|
|
ON UPDATE NO ACTION;
|
|
END IF;
|
|
END;
|
|
$$;DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.table_constraints
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'meal_plans'
|
|
AND constraint_name = 'fk_meal_plans_recipe_id'
|
|
) THEN
|
|
ALTER TABLE public.meal_plans
|
|
ADD CONSTRAINT fk_meal_plans_recipe_id
|
|
FOREIGN KEY (recipe_id)
|
|
REFERENCES public.recipes (id)
|
|
ON DELETE NO ACTION
|
|
ON UPDATE NO ACTION;
|
|
END IF;
|
|
END;
|
|
$$;DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.table_constraints
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'chat_histories'
|
|
AND constraint_name = 'fk_chat_histories_project_id'
|
|
) THEN
|
|
ALTER TABLE public.chat_histories
|
|
ADD CONSTRAINT fk_chat_histories_project_id
|
|
FOREIGN KEY (project_id)
|
|
REFERENCES public.projects (guid)
|
|
ON DELETE NO ACTION
|
|
ON UPDATE NO ACTION;
|
|
END IF;
|
|
END;
|
|
$$;DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.table_constraints
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'learnings'
|
|
AND constraint_name = 'fk_learnings_duplicate_of_learning_id'
|
|
) THEN
|
|
ALTER TABLE public.learnings
|
|
ADD CONSTRAINT fk_learnings_duplicate_of_learning_id
|
|
FOREIGN KEY (duplicate_of_learning_id)
|
|
REFERENCES public.learnings (id)
|
|
ON DELETE NO ACTION
|
|
ON UPDATE NO ACTION;
|
|
END IF;
|
|
END;
|
|
$$;DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.table_constraints
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'learnings'
|
|
AND constraint_name = 'fk_learnings_project_id'
|
|
) THEN
|
|
ALTER TABLE public.learnings
|
|
ADD CONSTRAINT fk_learnings_project_id
|
|
FOREIGN KEY (project_id)
|
|
REFERENCES public.projects (guid)
|
|
ON DELETE NO ACTION
|
|
ON UPDATE NO ACTION;
|
|
END IF;
|
|
END;
|
|
$$;DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.table_constraints
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'learnings'
|
|
AND constraint_name = 'fk_learnings_related_skill_id'
|
|
) THEN
|
|
ALTER TABLE public.learnings
|
|
ADD CONSTRAINT fk_learnings_related_skill_id
|
|
FOREIGN KEY (related_skill_id)
|
|
REFERENCES public.agent_skills (id)
|
|
ON DELETE NO ACTION
|
|
ON UPDATE NO ACTION;
|
|
END IF;
|
|
END;
|
|
$$;DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.table_constraints
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'learnings'
|
|
AND constraint_name = 'fk_learnings_related_thought_id'
|
|
) THEN
|
|
ALTER TABLE public.learnings
|
|
ADD CONSTRAINT fk_learnings_related_thought_id
|
|
FOREIGN KEY (related_thought_id)
|
|
REFERENCES public.thoughts (guid)
|
|
ON DELETE NO ACTION
|
|
ON UPDATE NO ACTION;
|
|
END IF;
|
|
END;
|
|
$$;DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.table_constraints
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'learnings'
|
|
AND constraint_name = 'fk_learnings_supersedes_learning_id'
|
|
) THEN
|
|
ALTER TABLE public.learnings
|
|
ADD CONSTRAINT fk_learnings_supersedes_learning_id
|
|
FOREIGN KEY (supersedes_learning_id)
|
|
REFERENCES public.learnings (id)
|
|
ON DELETE NO ACTION
|
|
ON UPDATE NO ACTION;
|
|
END IF;
|
|
END;
|
|
$$;DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.table_constraints
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'plans'
|
|
AND constraint_name = 'fk_plans_project_id'
|
|
) THEN
|
|
ALTER TABLE public.plans
|
|
ADD CONSTRAINT fk_plans_project_id
|
|
FOREIGN KEY (project_id)
|
|
REFERENCES public.projects (guid)
|
|
ON DELETE NO ACTION
|
|
ON UPDATE NO ACTION;
|
|
END IF;
|
|
END;
|
|
$$;DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.table_constraints
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'plans'
|
|
AND constraint_name = 'fk_plans_supersedes_plan_id'
|
|
) THEN
|
|
ALTER TABLE public.plans
|
|
ADD CONSTRAINT fk_plans_supersedes_plan_id
|
|
FOREIGN KEY (supersedes_plan_id)
|
|
REFERENCES public.plans (id)
|
|
ON DELETE NO ACTION
|
|
ON UPDATE NO ACTION;
|
|
END IF;
|
|
END;
|
|
$$;DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.table_constraints
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'plan_dependencies'
|
|
AND constraint_name = 'fk_plan_dependencies_depends_on_plan_id'
|
|
) THEN
|
|
ALTER TABLE public.plan_dependencies
|
|
ADD CONSTRAINT fk_plan_dependencies_depends_on_plan_id
|
|
FOREIGN KEY (depends_on_plan_id)
|
|
REFERENCES public.plans (id)
|
|
ON DELETE NO ACTION
|
|
ON UPDATE NO ACTION;
|
|
END IF;
|
|
END;
|
|
$$;DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.table_constraints
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'plan_dependencies'
|
|
AND constraint_name = 'fk_plan_dependencies_plan_id'
|
|
) THEN
|
|
ALTER TABLE public.plan_dependencies
|
|
ADD CONSTRAINT fk_plan_dependencies_plan_id
|
|
FOREIGN KEY (plan_id)
|
|
REFERENCES public.plans (id)
|
|
ON DELETE NO ACTION
|
|
ON UPDATE NO ACTION;
|
|
END IF;
|
|
END;
|
|
$$;DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.table_constraints
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'plan_related_plans'
|
|
AND constraint_name = 'fk_plan_related_plans_plan_a_id'
|
|
) THEN
|
|
ALTER TABLE public.plan_related_plans
|
|
ADD CONSTRAINT fk_plan_related_plans_plan_a_id
|
|
FOREIGN KEY (plan_a_id)
|
|
REFERENCES public.plans (id)
|
|
ON DELETE NO ACTION
|
|
ON UPDATE NO ACTION;
|
|
END IF;
|
|
END;
|
|
$$;DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.table_constraints
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'plan_related_plans'
|
|
AND constraint_name = 'fk_plan_related_plans_plan_b_id'
|
|
) THEN
|
|
ALTER TABLE public.plan_related_plans
|
|
ADD CONSTRAINT fk_plan_related_plans_plan_b_id
|
|
FOREIGN KEY (plan_b_id)
|
|
REFERENCES public.plans (id)
|
|
ON DELETE NO ACTION
|
|
ON UPDATE NO ACTION;
|
|
END IF;
|
|
END;
|
|
$$;DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.table_constraints
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'plan_skills'
|
|
AND constraint_name = 'fk_plan_skills_plan_id'
|
|
) THEN
|
|
ALTER TABLE public.plan_skills
|
|
ADD CONSTRAINT fk_plan_skills_plan_id
|
|
FOREIGN KEY (plan_id)
|
|
REFERENCES public.plans (id)
|
|
ON DELETE NO ACTION
|
|
ON UPDATE NO ACTION;
|
|
END IF;
|
|
END;
|
|
$$;DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.table_constraints
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'plan_skills'
|
|
AND constraint_name = 'fk_plan_skills_skill_id'
|
|
) THEN
|
|
ALTER TABLE public.plan_skills
|
|
ADD CONSTRAINT fk_plan_skills_skill_id
|
|
FOREIGN KEY (skill_id)
|
|
REFERENCES public.agent_skills (id)
|
|
ON DELETE NO ACTION
|
|
ON UPDATE NO ACTION;
|
|
END IF;
|
|
END;
|
|
$$;DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.table_constraints
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'plan_guardrails'
|
|
AND constraint_name = 'fk_plan_guardrails_guardrail_id'
|
|
) THEN
|
|
ALTER TABLE public.plan_guardrails
|
|
ADD CONSTRAINT fk_plan_guardrails_guardrail_id
|
|
FOREIGN KEY (guardrail_id)
|
|
REFERENCES public.agent_guardrails (id)
|
|
ON DELETE NO ACTION
|
|
ON UPDATE NO ACTION;
|
|
END IF;
|
|
END;
|
|
$$;DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.table_constraints
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'plan_guardrails'
|
|
AND constraint_name = 'fk_plan_guardrails_plan_id'
|
|
) THEN
|
|
ALTER TABLE public.plan_guardrails
|
|
ADD CONSTRAINT fk_plan_guardrails_plan_id
|
|
FOREIGN KEY (plan_id)
|
|
REFERENCES public.plans (id)
|
|
ON DELETE NO ACTION
|
|
ON UPDATE NO ACTION;
|
|
END IF;
|
|
END;
|
|
$$;DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.table_constraints
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'project_skills'
|
|
AND constraint_name = 'fk_project_skills_project_id'
|
|
) THEN
|
|
ALTER TABLE public.project_skills
|
|
ADD CONSTRAINT fk_project_skills_project_id
|
|
FOREIGN KEY (project_id)
|
|
REFERENCES public.projects (guid)
|
|
ON DELETE NO ACTION
|
|
ON UPDATE NO ACTION;
|
|
END IF;
|
|
END;
|
|
$$;DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.table_constraints
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'project_skills'
|
|
AND constraint_name = 'fk_project_skills_skill_id'
|
|
) THEN
|
|
ALTER TABLE public.project_skills
|
|
ADD CONSTRAINT fk_project_skills_skill_id
|
|
FOREIGN KEY (skill_id)
|
|
REFERENCES public.agent_skills (id)
|
|
ON DELETE NO ACTION
|
|
ON UPDATE NO ACTION;
|
|
END IF;
|
|
END;
|
|
$$;DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.table_constraints
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'project_guardrails'
|
|
AND constraint_name = 'fk_project_guardrails_guardrail_id'
|
|
) THEN
|
|
ALTER TABLE public.project_guardrails
|
|
ADD CONSTRAINT fk_project_guardrails_guardrail_id
|
|
FOREIGN KEY (guardrail_id)
|
|
REFERENCES public.agent_guardrails (id)
|
|
ON DELETE NO ACTION
|
|
ON UPDATE NO ACTION;
|
|
END IF;
|
|
END;
|
|
$$;DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.table_constraints
|
|
WHERE table_schema = 'public'
|
|
AND table_name = 'project_guardrails'
|
|
AND constraint_name = 'fk_project_guardrails_project_id'
|
|
) THEN
|
|
ALTER TABLE public.project_guardrails
|
|
ADD CONSTRAINT fk_project_guardrails_project_id
|
|
FOREIGN KEY (project_id)
|
|
REFERENCES public.projects (guid)
|
|
ON DELETE NO ACTION
|
|
ON UPDATE NO ACTION;
|
|
END IF;
|
|
END;
|
|
$$;-- Set sequence values for schema: public
|
|
DO $$
|
|
DECLARE
|
|
m_cnt bigint;
|
|
BEGIN
|
|
IF EXISTS (
|
|
SELECT 1 FROM pg_class c
|
|
INNER JOIN pg_namespace n ON n.oid = c.relnamespace
|
|
WHERE c.relname = 'identity_thoughts_id'
|
|
AND n.nspname = 'public'
|
|
AND c.relkind = 'S'
|
|
) THEN
|
|
SELECT COALESCE(MAX(id), 0) + 1
|
|
FROM public.thoughts
|
|
INTO m_cnt;
|
|
|
|
PERFORM setval('public.identity_thoughts_id'::regclass, m_cnt);
|
|
END IF;
|
|
END;
|
|
$$;
|
|
DO $$
|
|
DECLARE
|
|
m_cnt bigint;
|
|
BEGIN
|
|
IF EXISTS (
|
|
SELECT 1 FROM pg_class c
|
|
INNER JOIN pg_namespace n ON n.oid = c.relnamespace
|
|
WHERE c.relname = 'identity_projects_id'
|
|
AND n.nspname = 'public'
|
|
AND c.relkind = 'S'
|
|
) THEN
|
|
SELECT COALESCE(MAX(id), 0) + 1
|
|
FROM public.projects
|
|
INTO m_cnt;
|
|
|
|
PERFORM setval('public.identity_projects_id'::regclass, m_cnt);
|
|
END IF;
|
|
END;
|
|
$$;
|
|
DO $$
|
|
DECLARE
|
|
m_cnt bigint;
|
|
BEGIN
|
|
IF EXISTS (
|
|
SELECT 1 FROM pg_class c
|
|
INNER JOIN pg_namespace n ON n.oid = c.relnamespace
|
|
WHERE c.relname = 'identity_thought_links_id'
|
|
AND n.nspname = 'public'
|
|
AND c.relkind = 'S'
|
|
) THEN
|
|
SELECT COALESCE(MAX(id), 0) + 1
|
|
FROM public.thought_links
|
|
INTO m_cnt;
|
|
|
|
PERFORM setval('public.identity_thought_links_id'::regclass, m_cnt);
|
|
END IF;
|
|
END;
|
|
$$;
|
|
DO $$
|
|
DECLARE
|
|
m_cnt bigint;
|
|
BEGIN
|
|
IF EXISTS (
|
|
SELECT 1 FROM pg_class c
|
|
INNER JOIN pg_namespace n ON n.oid = c.relnamespace
|
|
WHERE c.relname = 'identity_embeddings_id'
|
|
AND n.nspname = 'public'
|
|
AND c.relkind = 'S'
|
|
) THEN
|
|
SELECT COALESCE(MAX(id), 0) + 1
|
|
FROM public.embeddings
|
|
INTO m_cnt;
|
|
|
|
PERFORM setval('public.identity_embeddings_id'::regclass, m_cnt);
|
|
END IF;
|
|
END;
|
|
$$;
|
|
DO $$
|
|
DECLARE
|
|
m_cnt bigint;
|
|
BEGIN
|
|
IF EXISTS (
|
|
SELECT 1 FROM pg_class c
|
|
INNER JOIN pg_namespace n ON n.oid = c.relnamespace
|
|
WHERE c.relname = 'identity_stored_files_id'
|
|
AND n.nspname = 'public'
|
|
AND c.relkind = 'S'
|
|
) THEN
|
|
SELECT COALESCE(MAX(id), 0) + 1
|
|
FROM public.stored_files
|
|
INTO m_cnt;
|
|
|
|
PERFORM setval('public.identity_stored_files_id'::regclass, m_cnt);
|
|
END IF;
|
|
END;
|
|
$$;
|
|
DO $$
|
|
DECLARE
|
|
m_cnt bigint;
|
|
BEGIN
|
|
IF EXISTS (
|
|
SELECT 1 FROM pg_class c
|
|
INNER JOIN pg_namespace n ON n.oid = c.relnamespace
|
|
WHERE c.relname = 'identity_tool_annotations_id'
|
|
AND n.nspname = 'public'
|
|
AND c.relkind = 'S'
|
|
) THEN
|
|
SELECT COALESCE(MAX(id), 0) + 1
|
|
FROM public.tool_annotations
|
|
INTO m_cnt;
|
|
|
|
PERFORM setval('public.identity_tool_annotations_id'::regclass, m_cnt);
|
|
END IF;
|
|
END;
|
|
$$;
|
|
DO $$
|
|
DECLARE
|
|
m_cnt bigint;
|
|
BEGIN
|
|
IF EXISTS (
|
|
SELECT 1 FROM pg_class c
|
|
INNER JOIN pg_namespace n ON n.oid = c.relnamespace
|
|
WHERE c.relname = 'identity_plan_dependencies_id'
|
|
AND n.nspname = 'public'
|
|
AND c.relkind = 'S'
|
|
) THEN
|
|
SELECT COALESCE(MAX(id), 0) + 1
|
|
FROM public.plan_dependencies
|
|
INTO m_cnt;
|
|
|
|
PERFORM setval('public.identity_plan_dependencies_id'::regclass, m_cnt);
|
|
END IF;
|
|
END;
|
|
$$;
|
|
DO $$
|
|
DECLARE
|
|
m_cnt bigint;
|
|
BEGIN
|
|
IF EXISTS (
|
|
SELECT 1 FROM pg_class c
|
|
INNER JOIN pg_namespace n ON n.oid = c.relnamespace
|
|
WHERE c.relname = 'identity_plan_related_plans_id'
|
|
AND n.nspname = 'public'
|
|
AND c.relkind = 'S'
|
|
) THEN
|
|
SELECT COALESCE(MAX(id), 0) + 1
|
|
FROM public.plan_related_plans
|
|
INTO m_cnt;
|
|
|
|
PERFORM setval('public.identity_plan_related_plans_id'::regclass, m_cnt);
|
|
END IF;
|
|
END;
|
|
$$;
|
|
DO $$
|
|
DECLARE
|
|
m_cnt bigint;
|
|
BEGIN
|
|
IF EXISTS (
|
|
SELECT 1 FROM pg_class c
|
|
INNER JOIN pg_namespace n ON n.oid = c.relnamespace
|
|
WHERE c.relname = 'identity_plan_skills_id'
|
|
AND n.nspname = 'public'
|
|
AND c.relkind = 'S'
|
|
) THEN
|
|
SELECT COALESCE(MAX(id), 0) + 1
|
|
FROM public.plan_skills
|
|
INTO m_cnt;
|
|
|
|
PERFORM setval('public.identity_plan_skills_id'::regclass, m_cnt);
|
|
END IF;
|
|
END;
|
|
$$;
|
|
DO $$
|
|
DECLARE
|
|
m_cnt bigint;
|
|
BEGIN
|
|
IF EXISTS (
|
|
SELECT 1 FROM pg_class c
|
|
INNER JOIN pg_namespace n ON n.oid = c.relnamespace
|
|
WHERE c.relname = 'identity_plan_guardrails_id'
|
|
AND n.nspname = 'public'
|
|
AND c.relkind = 'S'
|
|
) THEN
|
|
SELECT COALESCE(MAX(id), 0) + 1
|
|
FROM public.plan_guardrails
|
|
INTO m_cnt;
|
|
|
|
PERFORM setval('public.identity_plan_guardrails_id'::regclass, m_cnt);
|
|
END IF;
|
|
END;
|
|
$$;
|
|
DO $$
|
|
DECLARE
|
|
m_cnt bigint;
|
|
BEGIN
|
|
IF EXISTS (
|
|
SELECT 1 FROM pg_class c
|
|
INNER JOIN pg_namespace n ON n.oid = c.relnamespace
|
|
WHERE c.relname = 'identity_project_skills_id'
|
|
AND n.nspname = 'public'
|
|
AND c.relkind = 'S'
|
|
) THEN
|
|
SELECT COALESCE(MAX(id), 0) + 1
|
|
FROM public.project_skills
|
|
INTO m_cnt;
|
|
|
|
PERFORM setval('public.identity_project_skills_id'::regclass, m_cnt);
|
|
END IF;
|
|
END;
|
|
$$;
|
|
DO $$
|
|
DECLARE
|
|
m_cnt bigint;
|
|
BEGIN
|
|
IF EXISTS (
|
|
SELECT 1 FROM pg_class c
|
|
INNER JOIN pg_namespace n ON n.oid = c.relnamespace
|
|
WHERE c.relname = 'identity_project_guardrails_id'
|
|
AND n.nspname = 'public'
|
|
AND c.relkind = 'S'
|
|
) THEN
|
|
SELECT COALESCE(MAX(id), 0) + 1
|
|
FROM public.project_guardrails
|
|
INTO m_cnt;
|
|
|
|
PERFORM setval('public.identity_project_guardrails_id'::regclass, m_cnt);
|
|
END IF;
|
|
END;
|
|
$$;
|
|
-- Comments for schema: public
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|