mirror of
https://github.com/fawney19/Aether.git
synced 2026-09-03 01:40:21 +08:00
83 lines
2.9 KiB
MySQL
83 lines
2.9 KiB
MySQL
|
|
CREATE TABLE IF NOT EXISTS public.routing_groups (
|
||
|
|
id character varying(64) NOT NULL,
|
||
|
|
name character varying(255) NOT NULL,
|
||
|
|
description text,
|
||
|
|
enabled boolean DEFAULT true NOT NULL,
|
||
|
|
is_system_default boolean DEFAULT false NOT NULL,
|
||
|
|
config_json jsonb NOT NULL,
|
||
|
|
version bigint DEFAULT 1 NOT NULL,
|
||
|
|
created_at bigint NOT NULL,
|
||
|
|
updated_at bigint NOT NULL,
|
||
|
|
published_at bigint
|
||
|
|
);
|
||
|
|
|
||
|
|
DO $$
|
||
|
|
BEGIN
|
||
|
|
IF NOT EXISTS (
|
||
|
|
SELECT 1 FROM pg_constraint WHERE conname = 'routing_groups_pkey'
|
||
|
|
) THEN
|
||
|
|
ALTER TABLE ONLY public.routing_groups
|
||
|
|
ADD CONSTRAINT routing_groups_pkey PRIMARY KEY (id);
|
||
|
|
END IF;
|
||
|
|
IF NOT EXISTS (
|
||
|
|
SELECT 1 FROM pg_constraint WHERE conname = 'routing_groups_name_key'
|
||
|
|
) THEN
|
||
|
|
ALTER TABLE ONLY public.routing_groups
|
||
|
|
ADD CONSTRAINT routing_groups_name_key UNIQUE (name);
|
||
|
|
END IF;
|
||
|
|
END $$;
|
||
|
|
CREATE INDEX IF NOT EXISTS routing_groups_system_default_idx
|
||
|
|
ON public.routing_groups USING btree (is_system_default, enabled);
|
||
|
|
|
||
|
|
CREATE TABLE IF NOT EXISTS public.routing_group_bindings (
|
||
|
|
id character varying(64) NOT NULL,
|
||
|
|
group_id character varying(64) NOT NULL,
|
||
|
|
subject_type character varying(32) NOT NULL,
|
||
|
|
subject_id character varying(64) NOT NULL,
|
||
|
|
is_default boolean DEFAULT false NOT NULL,
|
||
|
|
allow_explicit_select boolean DEFAULT true NOT NULL,
|
||
|
|
created_at bigint NOT NULL,
|
||
|
|
updated_at bigint NOT NULL
|
||
|
|
);
|
||
|
|
|
||
|
|
DO $$
|
||
|
|
BEGIN
|
||
|
|
IF NOT EXISTS (
|
||
|
|
SELECT 1 FROM pg_constraint WHERE conname = 'routing_group_bindings_pkey'
|
||
|
|
) THEN
|
||
|
|
ALTER TABLE ONLY public.routing_group_bindings
|
||
|
|
ADD CONSTRAINT routing_group_bindings_pkey PRIMARY KEY (id);
|
||
|
|
END IF;
|
||
|
|
END $$;
|
||
|
|
CREATE INDEX IF NOT EXISTS routing_group_bindings_group_id_idx
|
||
|
|
ON public.routing_group_bindings USING btree (group_id);
|
||
|
|
CREATE INDEX IF NOT EXISTS routing_group_bindings_subject_idx
|
||
|
|
ON public.routing_group_bindings USING btree (subject_type, subject_id);
|
||
|
|
|
||
|
|
CREATE TABLE IF NOT EXISTS public.routing_group_versions (
|
||
|
|
id character varying(64) NOT NULL,
|
||
|
|
group_id character varying(64) NOT NULL,
|
||
|
|
version bigint NOT NULL,
|
||
|
|
config_json jsonb NOT NULL,
|
||
|
|
created_at bigint NOT NULL,
|
||
|
|
created_by character varying(64)
|
||
|
|
);
|
||
|
|
|
||
|
|
DO $$
|
||
|
|
BEGIN
|
||
|
|
IF NOT EXISTS (
|
||
|
|
SELECT 1 FROM pg_constraint WHERE conname = 'routing_group_versions_pkey'
|
||
|
|
) THEN
|
||
|
|
ALTER TABLE ONLY public.routing_group_versions
|
||
|
|
ADD CONSTRAINT routing_group_versions_pkey PRIMARY KEY (id);
|
||
|
|
END IF;
|
||
|
|
IF NOT EXISTS (
|
||
|
|
SELECT 1 FROM pg_constraint WHERE conname = 'routing_group_versions_group_version_key'
|
||
|
|
) THEN
|
||
|
|
ALTER TABLE ONLY public.routing_group_versions
|
||
|
|
ADD CONSTRAINT routing_group_versions_group_version_key UNIQUE (group_id, version);
|
||
|
|
END IF;
|
||
|
|
END $$;
|
||
|
|
CREATE INDEX IF NOT EXISTS routing_group_versions_group_id_idx
|
||
|
|
ON public.routing_group_versions USING btree (group_id);
|