| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748 |
- -- 幂等迁移: 合并 0020-0025 的所有变更
- -- 此迁移可以在任何状态下安全执行(新安装、从 0019 升级、从冲突版本升级)
- -- Step 0: 清理冲突的旧迁移记录(一次性,仅影响从冲突版本升级的用户)
- DELETE FROM drizzle.__drizzle_migrations WHERE hash IN (
- '0020_next_juggernaut',
- '0021_daily_cost_limits',
- '0022_simple_stardust',
- '0023_cheerful_shocker',
- '0023_safe_christian_walker',
- '0024_update_provider_timeout_defaults',
- '0025_hard_violations'
- );
- --> statement-breakpoint
- -- Step 1: 创建枚举类型(幂等)
- DO $$ BEGIN
- CREATE TYPE "public"."daily_reset_mode" AS ENUM('fixed', 'rolling');
- EXCEPTION
- WHEN duplicate_object THEN null;
- END $$;
- --> statement-breakpoint
- -- Step 2: 更新 providers 表默认值(幂等,无条件安全)
- ALTER TABLE "providers" ALTER COLUMN "first_byte_timeout_streaming_ms" SET DEFAULT 0;--> statement-breakpoint
- ALTER TABLE "providers" ALTER COLUMN "streaming_idle_timeout_ms" SET DEFAULT 0;--> statement-breakpoint
- ALTER TABLE "providers" ALTER COLUMN "request_timeout_non_streaming_ms" SET DEFAULT 0;--> statement-breakpoint
- -- Step 3: 添加 keys 表字段(幂等)
- ALTER TABLE "keys" ADD COLUMN IF NOT EXISTS "daily_reset_mode" "daily_reset_mode" DEFAULT 'fixed' NOT NULL;--> statement-breakpoint
- ALTER TABLE "keys" ADD COLUMN IF NOT EXISTS "limit_daily_usd" numeric(10, 2);--> statement-breakpoint
- ALTER TABLE "keys" ADD COLUMN IF NOT EXISTS "daily_reset_time" varchar(5) DEFAULT '00:00' NOT NULL;--> statement-breakpoint
- -- Step 4: 添加 providers 表字段(幂等)
- ALTER TABLE "providers" ADD COLUMN IF NOT EXISTS "mcp_passthrough_type" varchar(20) DEFAULT 'none' NOT NULL;--> statement-breakpoint
- ALTER TABLE "providers" ADD COLUMN IF NOT EXISTS "mcp_passthrough_url" varchar(512);--> statement-breakpoint
- ALTER TABLE "providers" ADD COLUMN IF NOT EXISTS "daily_reset_mode" "daily_reset_mode" DEFAULT 'fixed' NOT NULL;--> statement-breakpoint
- ALTER TABLE "providers" ADD COLUMN IF NOT EXISTS "limit_daily_usd" numeric(10, 2);--> statement-breakpoint
- ALTER TABLE "providers" ADD COLUMN IF NOT EXISTS "daily_reset_time" varchar(5) DEFAULT '00:00' NOT NULL;--> statement-breakpoint
- -- Step 5: 添加 system_settings 表字段(幂等)
- ALTER TABLE "system_settings" ADD COLUMN IF NOT EXISTS "billing_model_source" varchar(20) DEFAULT 'original' NOT NULL;--> statement-breakpoint
- -- Step 6: 添加 users 表字段(幂等)
- ALTER TABLE "users" ADD COLUMN IF NOT EXISTS "limit_5h_usd" numeric(10, 2);--> statement-breakpoint
- ALTER TABLE "users" ADD COLUMN IF NOT EXISTS "limit_weekly_usd" numeric(10, 2);--> statement-breakpoint
- ALTER TABLE "users" ADD COLUMN IF NOT EXISTS "limit_monthly_usd" numeric(10, 2);--> statement-breakpoint
- ALTER TABLE "users" ADD COLUMN IF NOT EXISTS "limit_concurrent_sessions" integer;
|