Files
NextEdu/drizzle/0011_ai_providers.sql
SpecialX 99f116cb64
Some checks failed
CI / build-deploy (push) Has been cancelled
=test_update_homework_tests_and_work_log
2026-03-19 13:16:49 +08:00

47 lines
1.9 KiB
SQL

SET @has_ai_providers := (
SELECT COUNT(*) FROM information_schema.TABLES
WHERE TABLE_SCHEMA = DATABASE()
AND TABLE_NAME = 'ai_providers'
);--> statement-breakpoint
SET @sql := IF(@has_ai_providers = 0, '
CREATE TABLE `ai_providers` (
`id` varchar(128) NOT NULL,
`provider` enum(''zhipu'',''openai'',''gemini'',''custom'') NOT NULL,
`base_url` varchar(512),
`model` varchar(128) NOT NULL,
`api_key_encrypted` text NOT NULL,
`api_key_last4` varchar(4),
`is_default` boolean NOT NULL DEFAULT false,
`created_by` varchar(128),
`updated_by` varchar(128),
`created_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
`updated_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY (`id`)
);
', 'SELECT 1');--> statement-breakpoint
PREPARE stmt FROM @sql;--> statement-breakpoint
EXECUTE stmt;--> statement-breakpoint
DEALLOCATE PREPARE stmt;--> statement-breakpoint
SET @has_ai_provider_idx := (
SELECT COUNT(*) FROM information_schema.STATISTICS
WHERE TABLE_SCHEMA = DATABASE()
AND TABLE_NAME = 'ai_providers'
AND INDEX_NAME = 'ai_provider_idx'
);--> statement-breakpoint
SET @sql := IF(@has_ai_provider_idx = 0, 'CREATE INDEX `ai_provider_idx` ON `ai_providers` (`provider`);', 'SELECT 1');--> statement-breakpoint
PREPARE stmt FROM @sql;--> statement-breakpoint
EXECUTE stmt;--> statement-breakpoint
DEALLOCATE PREPARE stmt;--> statement-breakpoint
SET @has_ai_provider_default_idx := (
SELECT COUNT(*) FROM information_schema.STATISTICS
WHERE TABLE_SCHEMA = DATABASE()
AND TABLE_NAME = 'ai_providers'
AND INDEX_NAME = 'ai_provider_default_idx'
);--> statement-breakpoint
SET @sql := IF(@has_ai_provider_default_idx = 0, 'CREATE INDEX `ai_provider_default_idx` ON `ai_providers` (`is_default`);', 'SELECT 1');--> statement-breakpoint
PREPARE stmt FROM @sql;--> statement-breakpoint
EXECUTE stmt;--> statement-breakpoint
DEALLOCATE PREPARE stmt;--> statement-breakpoint