47 lines
1.9 KiB
SQL
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
|