From fc063df8781087b771b3fd1701cfffe331d317ee Mon Sep 17 00:00:00 2001 From: Your Name Date: Sat, 14 Feb 2026 01:01:41 +0800 Subject: [PATCH] fix: include 0013 migration + avoid duplicate add column --- .gitignore | 3 + lib/db/migrations/0013_loving_ultimatum.sql | 92 +++++++++++++++++++++ 2 files changed, 95 insertions(+) create mode 100644 lib/db/migrations/0013_loving_ultimatum.sql diff --git a/.gitignore b/.gitignore index 6b5997a49..d6358adb4 100644 --- a/.gitignore +++ b/.gitignore @@ -73,3 +73,6 @@ checkpoints/ # 第三方参考源码(不提交到git) reference-sources/ + +# Drizzle migrations must be versioned (override the global *.sql ignore above) +!lib/db/migrations/*.sql diff --git a/lib/db/migrations/0013_loving_ultimatum.sql b/lib/db/migrations/0013_loving_ultimatum.sql new file mode 100644 index 000000000..4932cb593 --- /dev/null +++ b/lib/db/migrations/0013_loving_ultimatum.sql @@ -0,0 +1,92 @@ +CREATE TABLE IF NOT EXISTS "CanvasNode" ( + "id" uuid PRIMARY KEY DEFAULT gen_random_uuid() NOT NULL, + "projectId" uuid NOT NULL, + "type" varchar(32) NOT NULL, + "position" jsonb, + "size" jsonb, + "data" jsonb, + "connections" jsonb DEFAULT '[]'::jsonb, + "parentId" uuid, + "createdAt" timestamp DEFAULT now() NOT NULL, + "updatedAt" timestamp DEFAULT now() NOT NULL +); +--> statement-breakpoint +CREATE TABLE IF NOT EXISTS "CanvasProject" ( + "id" uuid PRIMARY KEY DEFAULT gen_random_uuid() NOT NULL, + "userId" uuid NOT NULL, + "title" varchar(256) DEFAULT '未命名画布' NOT NULL, + "description" text, + "thumbnail" text, + "canvasData" jsonb, + "createdAt" timestamp DEFAULT now() NOT NULL, + "updatedAt" timestamp DEFAULT now() NOT NULL +); +--> statement-breakpoint +CREATE TABLE IF NOT EXISTS "GeneratedImage" ( + "id" uuid PRIMARY KEY DEFAULT gen_random_uuid() NOT NULL, + "userId" uuid NOT NULL, + "chatId" uuid, + "messageId" uuid, + "thumbnailUrl" text NOT NULL, + "originalUrl" text NOT NULL, + "imageSize" varchar(10) DEFAULT '2K', + "prompt" text, + "modelId" varchar(128), + "isFeatured" boolean DEFAULT false NOT NULL, + "featuredAt" timestamp, + "featuredBy" uuid, + "createdAt" timestamp DEFAULT now() NOT NULL +); +--> statement-breakpoint +ALTER TABLE "AiModel" ADD COLUMN IF NOT EXISTS "capabilities" jsonb;--> statement-breakpoint +ALTER TABLE "AiModel" ADD COLUMN IF NOT EXISTS "defaultParams" jsonb;--> statement-breakpoint +ALTER TABLE "AiModel" ADD COLUMN IF NOT EXISTS "is_sub_model" boolean DEFAULT false NOT NULL;--> statement-breakpoint +ALTER TABLE "AiModel" ADD COLUMN IF NOT EXISTS "parent_model_id" uuid;--> statement-breakpoint +ALTER TABLE "AiModel" ADD COLUMN IF NOT EXISTS "fallbackModelId1" varchar(128);--> statement-breakpoint +ALTER TABLE "AiModel" ADD COLUMN IF NOT EXISTS "fallbackModelId2" varchar(128);--> statement-breakpoint +ALTER TABLE "AiModel" ADD COLUMN IF NOT EXISTS "imageGenConfig" jsonb;--> statement-breakpoint +ALTER TABLE "AuthSettings" ADD COLUMN IF NOT EXISTS "dingTalkOrganizations" jsonb;--> statement-breakpoint +ALTER TABLE "Message_v2" ADD COLUMN IF NOT EXISTS "video_storage_status" varchar(20) DEFAULT 'temporary';--> statement-breakpoint +ALTER TABLE "Message_v2" ADD COLUMN IF NOT EXISTS "temporary_video_url" text;--> statement-breakpoint +ALTER TABLE "Message_v2" ADD COLUMN IF NOT EXISTS "permanent_video_url" text;--> statement-breakpoint +ALTER TABLE "Message_v2" ADD COLUMN IF NOT EXISTS "archived_at" timestamp;--> statement-breakpoint +ALTER TABLE "Message_v2" ADD COLUMN IF NOT EXISTS "video_metadata" jsonb;--> statement-breakpoint +ALTER TABLE "SiteSettings" ADD COLUMN IF NOT EXISTS "showAutoModel" boolean DEFAULT true NOT NULL;--> statement-breakpoint +ALTER TABLE "SiteSettings" ADD COLUMN IF NOT EXISTS "defaultTheme" varchar(16) DEFAULT 'system' NOT NULL;--> statement-breakpoint +ALTER TABLE "SiteSettings" ADD COLUMN IF NOT EXISTS "usageTimeEnabled" boolean DEFAULT false NOT NULL;--> statement-breakpoint +ALTER TABLE "SiteSettings" ADD COLUMN IF NOT EXISTS "usageTimeStart" varchar(5) DEFAULT '08:00';--> statement-breakpoint +ALTER TABLE "SiteSettings" ADD COLUMN IF NOT EXISTS "usageTimeEnd" varchar(5) DEFAULT '20:00';--> statement-breakpoint +ALTER TABLE "SiteSettings" ADD COLUMN IF NOT EXISTS "usageTimeMessage" text DEFAULT '由壹点累了也是需要休息的';--> statement-breakpoint +ALTER TABLE "User" ADD COLUMN IF NOT EXISTS "name" varchar(100);--> statement-breakpoint +ALTER TABLE "User" ADD COLUMN IF NOT EXISTS "department" varchar(256);--> statement-breakpoint +ALTER TABLE "User" ADD COLUMN IF NOT EXISTS "dingtalkUserId" varchar(128);--> statement-breakpoint +ALTER TABLE "User" ADD COLUMN IF NOT EXISTS "monthlyImageLimit" integer;--> statement-breakpoint +DO $$ BEGIN + ALTER TABLE "CanvasNode" ADD CONSTRAINT "CanvasNode_projectId_CanvasProject_id_fk" FOREIGN KEY ("projectId") REFERENCES "public"."CanvasProject"("id") ON DELETE cascade ON UPDATE no action; +EXCEPTION + WHEN duplicate_object THEN null; +END $$; +--> statement-breakpoint +DO $$ BEGIN + ALTER TABLE "CanvasProject" ADD CONSTRAINT "CanvasProject_userId_User_id_fk" FOREIGN KEY ("userId") REFERENCES "public"."User"("id") ON DELETE cascade ON UPDATE no action; +EXCEPTION + WHEN duplicate_object THEN null; +END $$; +--> statement-breakpoint +DO $$ BEGIN + ALTER TABLE "GeneratedImage" ADD CONSTRAINT "GeneratedImage_userId_User_id_fk" FOREIGN KEY ("userId") REFERENCES "public"."User"("id") ON DELETE no action ON UPDATE no action; +EXCEPTION + WHEN duplicate_object THEN null; +END $$; +--> statement-breakpoint +DO $$ BEGIN + ALTER TABLE "GeneratedImage" ADD CONSTRAINT "GeneratedImage_chatId_Chat_id_fk" FOREIGN KEY ("chatId") REFERENCES "public"."Chat"("id") ON DELETE cascade ON UPDATE no action; +EXCEPTION + WHEN duplicate_object THEN null; +END $$; +--> statement-breakpoint +DO $$ BEGIN + ALTER TABLE "GeneratedImage" ADD CONSTRAINT "GeneratedImage_featuredBy_User_id_fk" FOREIGN KEY ("featuredBy") REFERENCES "public"."User"("id") ON DELETE no action ON UPDATE no action; +EXCEPTION + WHEN duplicate_object THEN null; +END $$;