diff --git a/.gitea/workflows/deploy.yml b/.gitea/workflows/deploy.yml index 6002d92..8bcd446 100644 --- a/.gitea/workflows/deploy.yml +++ b/.gitea/workflows/deploy.yml @@ -44,6 +44,9 @@ jobs: echo "[deploy] Found failed migration: $FAILED, cleaning up..." $MYSQL_CMD -e "DROP TABLE IF EXISTS AiUsageLog;" 2>/dev/null || true $MYSQL_CMD -e "DROP TABLE IF EXISTS WaitlistEntry;" 2>/dev/null || true + $MYSQL_CMD -e "DROP TABLE IF EXISTS ModelRoute;" 2>/dev/null || true + $MYSQL_CMD -e "DROP TABLE IF EXISTS ProviderConfig;" 2>/dev/null || true + $MYSQL_CMD -e "DROP TABLE IF EXISTS FallbackEvent;" 2>/dev/null || true $MYSQL_CMD -e "ALTER TABLE UploadedFile DROP COLUMN objectKey;" 2>/dev/null || true $MYSQL_CMD -e "ALTER TABLE UploadedFile DROP COLUMN bucket;" 2>/dev/null || true $MYSQL_CMD -e "DROP INDEX UploadedFile_objectKey_idx ON UploadedFile;" 2>/dev/null || true diff --git a/prisma/migrations/20260524000000_add_model_route/migration.sql b/prisma/migrations/20260524000000_add_model_route/migration.sql index 445842b..7c7dccf 100644 --- a/prisma/migrations/20260524000000_add_model_route/migration.sql +++ b/prisma/migrations/20260524000000_add_model_route/migration.sql @@ -1,5 +1,5 @@ -- CreateTable -CREATE TABLE `ModelRoute` ( +CREATE TABLE IF NOT EXISTS `ModelRoute` ( `id` VARCHAR(191) NOT NULL, `tier` VARCHAR(32) NOT NULL, `taskType` VARCHAR(32) NOT NULL DEFAULT '*', @@ -18,7 +18,7 @@ CREATE TABLE `ModelRoute` ( ) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; -- CreateTable -CREATE TABLE `ProviderConfig` ( +CREATE TABLE IF NOT EXISTS `ProviderConfig` ( `id` VARCHAR(191) NOT NULL, `name` VARCHAR(32) NOT NULL, `enabled` BOOLEAN NOT NULL DEFAULT true, @@ -32,7 +32,7 @@ CREATE TABLE `ProviderConfig` ( ) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; -- CreateTable -CREATE TABLE `FallbackEvent` ( +CREATE TABLE IF NOT EXISTS `FallbackEvent` ( `id` VARCHAR(191) NOT NULL, `tier` VARCHAR(32) NOT NULL, `taskType` VARCHAR(32) NOT NULL, @@ -46,14 +46,14 @@ CREATE TABLE `FallbackEvent` ( PRIMARY KEY (`id`) ) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; --- Seed default routes -INSERT INTO `ModelRoute` (`id`, `tier`, `taskType`, `preferredProvider`, `preferredModel`, `fallbackProvider`, `fallbackModel`, `maxRetries`) VALUES +-- Seed default routes (skip if already exist) +INSERT IGNORE INTO `ModelRoute` (`id`, `tier`, `taskType`, `preferredProvider`, `preferredModel`, `fallbackProvider`, `fallbackModel`, `maxRetries`) VALUES ('route-cheap-default', 'cheap', '*', 'deepseek', 'deepseek-v4-flash', 'deepseek', 'deepseek-v4-flash', 2), ('route-primary-default', 'primary', '*', 'minimax', 'minimax-m2.7', 'deepseek', 'deepseek-v4-pro', 3), ('route-strong-default', 'strong', '*', 'deepseek', 'deepseek-v4-pro', 'deepseek', 'deepseek-v4-pro', 3); --- Seed provider configs -INSERT INTO `ProviderConfig` (`id`, `name`, `enabled`) VALUES +-- Seed provider configs (skip if already exist) +INSERT IGNORE INTO `ProviderConfig` (`id`, `name`, `enabled`) VALUES ('prov-deepseek', 'deepseek', true), ('prov-minimax', 'minimax', true), ('prov-siliconflow', 'siliconflow', true),