From 93b9b1c6f547cf40b19227d124c344144b442f34 Mon Sep 17 00:00:00 2001 From: SunWuyuan Date: Sat, 24 May 2025 20:00:17 +0800 Subject: [PATCH] Enhance database setup in `classworks.js` to include automatic migration execution after setting the DATABASE_URL. Update Dockerfile to use Node.js version 22-alpine for improved compatibility. Modify `docker-compose.yml` to change volume mapping for data storage. --- Dockerfile | 2 +- classworks.js | 9 ++++++++- docker-compose.yml | 2 +- 3 files changed, 10 insertions(+), 3 deletions(-) diff --git a/Dockerfile b/Dockerfile index 59d30ed..05be299 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,4 +1,4 @@ -FROM node:alpine +FROM node:22-alpine WORKDIR /app diff --git a/classworks.js b/classworks.js index fe928e9..d4371de 100644 --- a/classworks.js +++ b/classworks.js @@ -44,6 +44,13 @@ function setupDatabase() { // 设置 Prisma 的 DATABASE_URL process.env.DATABASE_URL = DATABASE_URL; + + // 检查数据库表并执行必要的迁移 + execSync( + "npx prisma migrate dev --name update-" + + new Date().toISOString().split("T")[0], + { stdio: "inherit" } + ); } catch (error) { console.error("❌ 数据库初始化失败:", error.message); process.exit(1); @@ -53,7 +60,7 @@ function setupDatabase() { // 🔨 本地构建函数 function buildLocal() { try { - execSync("npm install", { stdio: "inherit" }); // 安装依赖 + execSync("npm install", { stdio: "inherit" }); // 安装依赖 execSync("npx prisma generate", { stdio: "inherit" }); // 生成 Prisma 客户端 console.log("✅ 构建完成"); } catch (error) { diff --git a/docker-compose.yml b/docker-compose.yml index 3b92508..ce2ba0d 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -13,5 +13,5 @@ services: - DATABASE_TYPE=sqlite - DATABASE_URL= volumes: - - cs-data:/data + - .data:/app/data