Files
Homarr/packages/db/migrations/postgresql/0000_initial.sql

322 lines
17 KiB
MySQL
Raw Normal View History

CREATE TABLE "account" (
"user_id" varchar(64) NOT NULL,
"type" text NOT NULL,
"provider" varchar(64) NOT NULL,
"provider_account_id" varchar(64) NOT NULL,
"refresh_token" text,
"access_token" text,
"expires_at" integer,
"token_type" text,
"scope" text,
"id_token" text,
"session_state" text,
CONSTRAINT "account_provider_provider_account_id_pk" PRIMARY KEY("provider","provider_account_id")
);
--> statement-breakpoint
CREATE TABLE "apiKey" (
"id" varchar(64) PRIMARY KEY NOT NULL,
"api_key" text NOT NULL,
"salt" text NOT NULL,
"user_id" varchar(64) NOT NULL
);
--> statement-breakpoint
CREATE TABLE "app" (
"id" varchar(64) PRIMARY KEY NOT NULL,
"name" text NOT NULL,
"description" text,
"icon_url" text NOT NULL,
"href" text,
"ping_url" text
);
--> statement-breakpoint
CREATE TABLE "boardGroupPermission" (
"board_id" varchar(64) NOT NULL,
"group_id" varchar(64) NOT NULL,
"permission" varchar(128) NOT NULL,
CONSTRAINT "boardGroupPermission_board_id_group_id_permission_pk" PRIMARY KEY("board_id","group_id","permission")
);
--> statement-breakpoint
CREATE TABLE "boardUserPermission" (
"board_id" varchar(64) NOT NULL,
"user_id" varchar(64) NOT NULL,
"permission" varchar(128) NOT NULL,
CONSTRAINT "boardUserPermission_board_id_user_id_permission_pk" PRIMARY KEY("board_id","user_id","permission")
);
--> statement-breakpoint
CREATE TABLE "board" (
"id" varchar(64) PRIMARY KEY NOT NULL,
"name" varchar(256) NOT NULL,
"is_public" boolean DEFAULT false NOT NULL,
"creator_id" varchar(64),
"page_title" text,
"meta_title" text,
"logo_image_url" text,
"favicon_image_url" text,
"background_image_url" text,
"background_image_attachment" text DEFAULT 'fixed' NOT NULL,
"background_image_repeat" text DEFAULT 'no-repeat' NOT NULL,
"background_image_size" text DEFAULT 'cover' NOT NULL,
"primary_color" text DEFAULT '#fa5252' NOT NULL,
"secondary_color" text DEFAULT '#fd7e14' NOT NULL,
"opacity" integer DEFAULT 100 NOT NULL,
"custom_css" text,
"icon_color" text,
"item_radius" text DEFAULT 'lg' NOT NULL,
"disable_status" boolean DEFAULT false NOT NULL,
CONSTRAINT "board_name_unique" UNIQUE("name")
);
--> statement-breakpoint
CREATE TABLE "cron_job_configuration" (
"name" varchar(256) PRIMARY KEY NOT NULL,
"cron_expression" varchar(32) NOT NULL,
"is_enabled" boolean DEFAULT true NOT NULL
);
--> statement-breakpoint
CREATE TABLE "groupMember" (
"group_id" varchar(64) NOT NULL,
"user_id" varchar(64) NOT NULL,
CONSTRAINT "groupMember_group_id_user_id_pk" PRIMARY KEY("group_id","user_id")
);
--> statement-breakpoint
CREATE TABLE "groupPermission" (
"group_id" varchar(64) NOT NULL,
"permission" text NOT NULL
);
--> statement-breakpoint
CREATE TABLE "group" (
"id" varchar(64) PRIMARY KEY NOT NULL,
"name" varchar(64) NOT NULL,
"owner_id" varchar(64),
"home_board_id" varchar(64),
"mobile_home_board_id" varchar(64),
"position" smallint NOT NULL,
CONSTRAINT "group_name_unique" UNIQUE("name")
);
--> statement-breakpoint
CREATE TABLE "iconRepository" (
"id" varchar(64) PRIMARY KEY NOT NULL,
"slug" varchar(150) NOT NULL
);
--> statement-breakpoint
CREATE TABLE "icon" (
"id" varchar(64) PRIMARY KEY NOT NULL,
"name" varchar(250) NOT NULL,
"url" text NOT NULL,
"checksum" text NOT NULL,
"icon_repository_id" varchar(64) NOT NULL
);
--> statement-breakpoint
CREATE TABLE "integrationGroupPermissions" (
"integration_id" varchar(64) NOT NULL,
"group_id" varchar(64) NOT NULL,
"permission" varchar(128) NOT NULL,
CONSTRAINT "integration_group_permission__pk" PRIMARY KEY("integration_id","group_id","permission")
);
--> statement-breakpoint
CREATE TABLE "integration_item" (
"item_id" varchar(64) NOT NULL,
"integration_id" varchar(64) NOT NULL,
CONSTRAINT "integration_item_item_id_integration_id_pk" PRIMARY KEY("item_id","integration_id")
);
--> statement-breakpoint
CREATE TABLE "integrationSecret" (
"kind" varchar(16) NOT NULL,
"value" text NOT NULL,
"updated_at" timestamp NOT NULL,
"integration_id" varchar(64) NOT NULL,
CONSTRAINT "integrationSecret_integration_id_kind_pk" PRIMARY KEY("integration_id","kind")
);
--> statement-breakpoint
CREATE TABLE "integrationUserPermission" (
"integration_id" varchar(64) NOT NULL,
"user_id" varchar(64) NOT NULL,
"permission" varchar(128) NOT NULL,
CONSTRAINT "integrationUserPermission_integration_id_user_id_permission_pk" PRIMARY KEY("integration_id","user_id","permission")
);
--> statement-breakpoint
CREATE TABLE "integration" (
"id" varchar(64) PRIMARY KEY NOT NULL,
"name" text NOT NULL,
"url" text NOT NULL,
"kind" varchar(128) NOT NULL
);
--> statement-breakpoint
CREATE TABLE "invite" (
"id" varchar(64) PRIMARY KEY NOT NULL,
"token" varchar(512) NOT NULL,
"expiration_date" timestamp NOT NULL,
"creator_id" varchar(64) NOT NULL,
CONSTRAINT "invite_token_unique" UNIQUE("token")
);
--> statement-breakpoint
CREATE TABLE "item_layout" (
"item_id" varchar(64) NOT NULL,
"section_id" varchar(64) NOT NULL,
"layout_id" varchar(64) NOT NULL,
"x_offset" integer NOT NULL,
"y_offset" integer NOT NULL,
"width" integer NOT NULL,
"height" integer NOT NULL,
CONSTRAINT "item_layout_item_id_section_id_layout_id_pk" PRIMARY KEY("item_id","section_id","layout_id")
);
--> statement-breakpoint
CREATE TABLE "item" (
"id" varchar(64) PRIMARY KEY NOT NULL,
"board_id" varchar(64) NOT NULL,
"kind" text NOT NULL,
"options" text DEFAULT '{"json": {}}' NOT NULL,
"advanced_options" text DEFAULT '{"json": {}}' NOT NULL
);
--> statement-breakpoint
CREATE TABLE "layout" (
"id" varchar(64) PRIMARY KEY NOT NULL,
"name" varchar(32) NOT NULL,
"board_id" varchar(64) NOT NULL,
"column_count" smallint NOT NULL,
"breakpoint" smallint DEFAULT 0 NOT NULL
);
--> statement-breakpoint
CREATE TABLE "media" (
"id" varchar(64) PRIMARY KEY NOT NULL,
"name" varchar(512) NOT NULL,
"content" "bytea" NOT NULL,
"content_type" text NOT NULL,
"size" integer NOT NULL,
"created_at" timestamp DEFAULT now() NOT NULL,
"creator_id" varchar(64)
);
--> statement-breakpoint
CREATE TABLE "onboarding" (
"id" varchar(64) PRIMARY KEY NOT NULL,
"step" varchar(64) NOT NULL,
"previous_step" varchar(64)
);
--> statement-breakpoint
CREATE TABLE "search_engine" (
"id" varchar(64) PRIMARY KEY NOT NULL,
"icon_url" text NOT NULL,
"name" varchar(64) NOT NULL,
"short" varchar(8) NOT NULL,
"description" text,
"url_template" text,
"type" varchar(64) DEFAULT 'generic' NOT NULL,
"integration_id" varchar(64),
CONSTRAINT "search_engine_short_unique" UNIQUE("short")
);
--> statement-breakpoint
CREATE TABLE "section_collapse_state" (
"user_id" varchar(64) NOT NULL,
"section_id" varchar(64) NOT NULL,
"collapsed" boolean DEFAULT false NOT NULL,
CONSTRAINT "section_collapse_state_user_id_section_id_pk" PRIMARY KEY("user_id","section_id")
);
--> statement-breakpoint
CREATE TABLE "section_layout" (
"section_id" varchar(64) NOT NULL,
"layout_id" varchar(64) NOT NULL,
"parent_section_id" varchar(64),
"x_offset" integer NOT NULL,
"y_offset" integer NOT NULL,
"width" integer NOT NULL,
"height" integer NOT NULL,
CONSTRAINT "section_layout_section_id_layout_id_pk" PRIMARY KEY("section_id","layout_id")
);
--> statement-breakpoint
CREATE TABLE "section" (
"id" varchar(64) PRIMARY KEY NOT NULL,
"board_id" varchar(64) NOT NULL,
"kind" text NOT NULL,
"x_offset" integer,
"y_offset" integer,
"name" text,
"options" text DEFAULT '{"json": {}}'
);
--> statement-breakpoint
CREATE TABLE "serverSetting" (
"setting_key" varchar(64) PRIMARY KEY NOT NULL,
"value" text DEFAULT '{"json": {}}' NOT NULL,
CONSTRAINT "serverSetting_settingKey_unique" UNIQUE("setting_key")
);
--> statement-breakpoint
CREATE TABLE "session" (
"session_token" varchar(512) PRIMARY KEY NOT NULL,
"user_id" varchar(64) NOT NULL,
"expires" timestamp NOT NULL
);
--> statement-breakpoint
CREATE TABLE "trusted_certificate_hostname" (
"hostname" varchar(256) NOT NULL,
"thumbprint" varchar(128) NOT NULL,
"certificate" text NOT NULL,
CONSTRAINT "trusted_certificate_hostname_hostname_thumbprint_pk" PRIMARY KEY("hostname","thumbprint")
);
--> statement-breakpoint
CREATE TABLE "user" (
"id" varchar(64) PRIMARY KEY NOT NULL,
"name" text,
"email" text,
"email_verified" timestamp,
"image" text,
"password" text,
"salt" text,
"provider" varchar(64) DEFAULT 'credentials' NOT NULL,
"home_board_id" varchar(64),
"mobile_home_board_id" varchar(64),
"default_search_engine_id" varchar(64),
"open_search_in_new_tab" boolean DEFAULT false NOT NULL,
"color_scheme" varchar(5) DEFAULT 'dark' NOT NULL,
"first_day_of_week" smallint DEFAULT 1 NOT NULL,
"ping_icons_enabled" boolean DEFAULT false NOT NULL
);
--> statement-breakpoint
CREATE TABLE "verificationToken" (
"identifier" varchar(64) NOT NULL,
"token" varchar(512) NOT NULL,
"expires" timestamp NOT NULL,
CONSTRAINT "verificationToken_identifier_token_pk" PRIMARY KEY("identifier","token")
);
--> statement-breakpoint
ALTER TABLE "account" ADD CONSTRAINT "account_user_id_user_id_fk" FOREIGN KEY ("user_id") REFERENCES "public"."user"("id") ON DELETE cascade ON UPDATE no action;--> statement-breakpoint
ALTER TABLE "apiKey" ADD CONSTRAINT "apiKey_user_id_user_id_fk" FOREIGN KEY ("user_id") REFERENCES "public"."user"("id") ON DELETE cascade ON UPDATE no action;--> statement-breakpoint
ALTER TABLE "boardGroupPermission" ADD CONSTRAINT "boardGroupPermission_board_id_board_id_fk" FOREIGN KEY ("board_id") REFERENCES "public"."board"("id") ON DELETE cascade ON UPDATE no action;--> statement-breakpoint
ALTER TABLE "boardGroupPermission" ADD CONSTRAINT "boardGroupPermission_group_id_group_id_fk" FOREIGN KEY ("group_id") REFERENCES "public"."group"("id") ON DELETE cascade ON UPDATE no action;--> statement-breakpoint
ALTER TABLE "boardUserPermission" ADD CONSTRAINT "boardUserPermission_board_id_board_id_fk" FOREIGN KEY ("board_id") REFERENCES "public"."board"("id") ON DELETE cascade ON UPDATE no action;--> statement-breakpoint
ALTER TABLE "boardUserPermission" ADD CONSTRAINT "boardUserPermission_user_id_user_id_fk" FOREIGN KEY ("user_id") REFERENCES "public"."user"("id") ON DELETE cascade ON UPDATE no action;--> statement-breakpoint
ALTER TABLE "board" ADD CONSTRAINT "board_creator_id_user_id_fk" FOREIGN KEY ("creator_id") REFERENCES "public"."user"("id") ON DELETE set null ON UPDATE no action;--> statement-breakpoint
ALTER TABLE "groupMember" ADD CONSTRAINT "groupMember_group_id_group_id_fk" FOREIGN KEY ("group_id") REFERENCES "public"."group"("id") ON DELETE cascade ON UPDATE no action;--> statement-breakpoint
ALTER TABLE "groupMember" ADD CONSTRAINT "groupMember_user_id_user_id_fk" FOREIGN KEY ("user_id") REFERENCES "public"."user"("id") ON DELETE cascade ON UPDATE no action;--> statement-breakpoint
ALTER TABLE "groupPermission" ADD CONSTRAINT "groupPermission_group_id_group_id_fk" FOREIGN KEY ("group_id") REFERENCES "public"."group"("id") ON DELETE cascade ON UPDATE no action;--> statement-breakpoint
ALTER TABLE "group" ADD CONSTRAINT "group_owner_id_user_id_fk" FOREIGN KEY ("owner_id") REFERENCES "public"."user"("id") ON DELETE set null ON UPDATE no action;--> statement-breakpoint
ALTER TABLE "group" ADD CONSTRAINT "group_home_board_id_board_id_fk" FOREIGN KEY ("home_board_id") REFERENCES "public"."board"("id") ON DELETE set null ON UPDATE no action;--> statement-breakpoint
ALTER TABLE "group" ADD CONSTRAINT "group_mobile_home_board_id_board_id_fk" FOREIGN KEY ("mobile_home_board_id") REFERENCES "public"."board"("id") ON DELETE set null ON UPDATE no action;--> statement-breakpoint
ALTER TABLE "icon" ADD CONSTRAINT "icon_icon_repository_id_iconRepository_id_fk" FOREIGN KEY ("icon_repository_id") REFERENCES "public"."iconRepository"("id") ON DELETE cascade ON UPDATE no action;--> statement-breakpoint
ALTER TABLE "integrationGroupPermissions" ADD CONSTRAINT "integrationGroupPermissions_integration_id_integration_id_fk" FOREIGN KEY ("integration_id") REFERENCES "public"."integration"("id") ON DELETE cascade ON UPDATE no action;--> statement-breakpoint
ALTER TABLE "integrationGroupPermissions" ADD CONSTRAINT "integrationGroupPermissions_group_id_group_id_fk" FOREIGN KEY ("group_id") REFERENCES "public"."group"("id") ON DELETE cascade ON UPDATE no action;--> statement-breakpoint
ALTER TABLE "integration_item" ADD CONSTRAINT "integration_item_item_id_item_id_fk" FOREIGN KEY ("item_id") REFERENCES "public"."item"("id") ON DELETE cascade ON UPDATE no action;--> statement-breakpoint
ALTER TABLE "integration_item" ADD CONSTRAINT "integration_item_integration_id_integration_id_fk" FOREIGN KEY ("integration_id") REFERENCES "public"."integration"("id") ON DELETE cascade ON UPDATE no action;--> statement-breakpoint
ALTER TABLE "integrationSecret" ADD CONSTRAINT "integrationSecret_integration_id_integration_id_fk" FOREIGN KEY ("integration_id") REFERENCES "public"."integration"("id") ON DELETE cascade ON UPDATE no action;--> statement-breakpoint
ALTER TABLE "integrationUserPermission" ADD CONSTRAINT "integrationUserPermission_integration_id_integration_id_fk" FOREIGN KEY ("integration_id") REFERENCES "public"."integration"("id") ON DELETE cascade ON UPDATE no action;--> statement-breakpoint
ALTER TABLE "integrationUserPermission" ADD CONSTRAINT "integrationUserPermission_user_id_user_id_fk" FOREIGN KEY ("user_id") REFERENCES "public"."user"("id") ON DELETE cascade ON UPDATE no action;--> statement-breakpoint
ALTER TABLE "invite" ADD CONSTRAINT "invite_creator_id_user_id_fk" FOREIGN KEY ("creator_id") REFERENCES "public"."user"("id") ON DELETE cascade ON UPDATE no action;--> statement-breakpoint
ALTER TABLE "item_layout" ADD CONSTRAINT "item_layout_item_id_item_id_fk" FOREIGN KEY ("item_id") REFERENCES "public"."item"("id") ON DELETE cascade ON UPDATE no action;--> statement-breakpoint
ALTER TABLE "item_layout" ADD CONSTRAINT "item_layout_section_id_section_id_fk" FOREIGN KEY ("section_id") REFERENCES "public"."section"("id") ON DELETE cascade ON UPDATE no action;--> statement-breakpoint
ALTER TABLE "item_layout" ADD CONSTRAINT "item_layout_layout_id_layout_id_fk" FOREIGN KEY ("layout_id") REFERENCES "public"."layout"("id") ON DELETE cascade ON UPDATE no action;--> statement-breakpoint
ALTER TABLE "item" ADD CONSTRAINT "item_board_id_board_id_fk" FOREIGN KEY ("board_id") REFERENCES "public"."board"("id") ON DELETE cascade ON UPDATE no action;--> statement-breakpoint
ALTER TABLE "layout" ADD CONSTRAINT "layout_board_id_board_id_fk" FOREIGN KEY ("board_id") REFERENCES "public"."board"("id") ON DELETE cascade ON UPDATE no action;--> statement-breakpoint
ALTER TABLE "media" ADD CONSTRAINT "media_creator_id_user_id_fk" FOREIGN KEY ("creator_id") REFERENCES "public"."user"("id") ON DELETE set null ON UPDATE no action;--> statement-breakpoint
ALTER TABLE "search_engine" ADD CONSTRAINT "search_engine_integration_id_integration_id_fk" FOREIGN KEY ("integration_id") REFERENCES "public"."integration"("id") ON DELETE cascade ON UPDATE no action;--> statement-breakpoint
ALTER TABLE "section_collapse_state" ADD CONSTRAINT "section_collapse_state_user_id_user_id_fk" FOREIGN KEY ("user_id") REFERENCES "public"."user"("id") ON DELETE cascade ON UPDATE no action;--> statement-breakpoint
ALTER TABLE "section_collapse_state" ADD CONSTRAINT "section_collapse_state_section_id_section_id_fk" FOREIGN KEY ("section_id") REFERENCES "public"."section"("id") ON DELETE cascade ON UPDATE no action;--> statement-breakpoint
ALTER TABLE "section_layout" ADD CONSTRAINT "section_layout_section_id_section_id_fk" FOREIGN KEY ("section_id") REFERENCES "public"."section"("id") ON DELETE cascade ON UPDATE no action;--> statement-breakpoint
ALTER TABLE "section_layout" ADD CONSTRAINT "section_layout_layout_id_layout_id_fk" FOREIGN KEY ("layout_id") REFERENCES "public"."layout"("id") ON DELETE cascade ON UPDATE no action;--> statement-breakpoint
ALTER TABLE "section_layout" ADD CONSTRAINT "section_layout_parent_section_id_section_id_fk" FOREIGN KEY ("parent_section_id") REFERENCES "public"."section"("id") ON DELETE cascade ON UPDATE no action;--> statement-breakpoint
ALTER TABLE "section" ADD CONSTRAINT "section_board_id_board_id_fk" FOREIGN KEY ("board_id") REFERENCES "public"."board"("id") ON DELETE cascade ON UPDATE no action;--> statement-breakpoint
ALTER TABLE "session" ADD CONSTRAINT "session_user_id_user_id_fk" FOREIGN KEY ("user_id") REFERENCES "public"."user"("id") ON DELETE cascade ON UPDATE no action;--> statement-breakpoint
ALTER TABLE "user" ADD CONSTRAINT "user_home_board_id_board_id_fk" FOREIGN KEY ("home_board_id") REFERENCES "public"."board"("id") ON DELETE set null ON UPDATE no action;--> statement-breakpoint
ALTER TABLE "user" ADD CONSTRAINT "user_mobile_home_board_id_board_id_fk" FOREIGN KEY ("mobile_home_board_id") REFERENCES "public"."board"("id") ON DELETE set null ON UPDATE no action;--> statement-breakpoint
ALTER TABLE "user" ADD CONSTRAINT "user_default_search_engine_id_search_engine_id_fk" FOREIGN KEY ("default_search_engine_id") REFERENCES "public"."search_engine"("id") ON DELETE set null ON UPDATE no action;--> statement-breakpoint
CREATE INDEX "userId_idx" ON "account" USING btree ("user_id");--> statement-breakpoint
CREATE INDEX "integration_secret__kind_idx" ON "integrationSecret" USING btree ("kind");--> statement-breakpoint
CREATE INDEX "integration_secret__updated_at_idx" ON "integrationSecret" USING btree ("updated_at");--> statement-breakpoint
CREATE INDEX "integration__kind_idx" ON "integration" USING btree ("kind");--> statement-breakpoint
CREATE INDEX "user_id_idx" ON "session" USING btree ("user_id");