/** * 创建 wecom_api_plugin(若不存在)。 * 不依赖 Prisma Client 新 model,可在 generate 之前执行。 */ import { PrismaClient } from '@prisma/client'; const prisma = new PrismaClient(); async function main() { await prisma.$executeRawUnsafe(` CREATE TABLE IF NOT EXISTS wecom_api_plugin ( id BIGINT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY, name VARCHAR(64) NOT NULL, api_key VARCHAR(128) NOT NULL, permissions TEXT NOT NULL, remark VARCHAR(256) NULL, enabled TINYINT(1) NOT NULL DEFAULT 1, sort_order INT NOT NULL DEFAULT 0, created_at DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3), updated_at DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3), UNIQUE KEY wecom_api_plugin_api_key_key (api_key), KEY wecom_api_plugin_enabled_sort (enabled, sort_order) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci `); console.log('migrate-wecom-api-plugin done'); } main() .catch((e) => { console.error(e); process.exit(1); }) .finally(async () => { await prisma.$disconnect(); });