fix: idempotent migration SQL + cleanup failed M1 tables in CI
Some checks failed
Deploy API Server / build-and-deploy (push) Failing after 33s

- Use CREATE TABLE IF NOT EXISTS + INSERT IGNORE for M1 tables
- Add ModelRoute/ProviderConfig/FallbackEvent to CI cleanup step
- Fixes P3018 migration error from partially-applied first run

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
WangDL 2026-05-24 10:44:06 +08:00
parent 14824a3609
commit a5a592988a
2 changed files with 10 additions and 7 deletions

View File

@ -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

View File

@ -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),