## 后端改动 - 添加 Project.envPresets 字段(JSON 格式) - 移除 Deployment.env 字段,统一使用 envVars - 更新部署 DTO,支持 envVars (Record<string, string>) - pipeline-runner 支持解析并注入 envVars 到环境 - 移除稀疏检出模板和相关环境变量 - 优化代码格式(Biome lint & format) ## 前端改动 - 新增 EnvPresetsEditor 组件(支持单选/多选/输入框类型) - 项目创建/编辑界面集成环境预设编辑器 - 部署界面基于预设动态生成环境变量表单 - 移除稀疏检出表单项 - 项目详情页添加环境变量预设配置 tab - 优化部署界面布局(基本参数 & 环境变量分区) ## 文档 - 添加完整文档目录结构(docs/) - 创建设计文档 design-0005(部署流程重构) - 添加 API 文档、架构设计文档等 ## 数据库 - 执行 prisma db push 同步 schema 变更
97 lines
2.6 KiB
Plaintext
97 lines
2.6 KiB
Plaintext
// This is your Prisma schema file,
|
||
// learn more about it in the docs: https://pris.ly/d/prisma-schema
|
||
|
||
generator client {
|
||
provider = "prisma-client"
|
||
output = "../generated"
|
||
}
|
||
|
||
datasource db {
|
||
provider = "sqlite"
|
||
}
|
||
|
||
model Project {
|
||
id Int @id @default(autoincrement())
|
||
name String
|
||
description String?
|
||
repository String
|
||
projectDir String @unique // 项目工作目录路径(必填)
|
||
envPresets String? // 环境预设配置(JSON格式)
|
||
// Relations
|
||
deployments Deployment[]
|
||
pipelines Pipeline[]
|
||
|
||
valid Int @default(1)
|
||
createdAt DateTime @default(now())
|
||
updatedAt DateTime @updatedAt
|
||
createdBy String
|
||
updatedBy String
|
||
}
|
||
|
||
model User {
|
||
id Int @id @default(autoincrement())
|
||
username String
|
||
login String
|
||
email String
|
||
avatar_url String?
|
||
active Boolean @default(true)
|
||
valid Int @default(1)
|
||
createdAt DateTime @default(now())
|
||
updatedAt DateTime @updatedAt
|
||
createdBy String @default("system")
|
||
updatedBy String @default("system")
|
||
}
|
||
|
||
model Pipeline {
|
||
id Int @id @default(autoincrement())
|
||
name String
|
||
description String?
|
||
valid Int @default(1)
|
||
createdAt DateTime @default(now())
|
||
updatedAt DateTime @updatedAt
|
||
createdBy String
|
||
updatedBy String
|
||
|
||
// Relations
|
||
projectId Int?
|
||
Project Project? @relation(fields: [projectId], references: [id])
|
||
steps Step[]
|
||
}
|
||
|
||
model Step {
|
||
id Int @id @default(autoincrement())
|
||
name String
|
||
order Int
|
||
script String // 执行的脚本命令
|
||
valid Int @default(1)
|
||
createdAt DateTime @default(now())
|
||
updatedAt DateTime @updatedAt
|
||
createdBy String
|
||
updatedBy String
|
||
|
||
pipelineId Int
|
||
pipeline Pipeline @relation(fields: [pipelineId], references: [id])
|
||
}
|
||
|
||
model Deployment {
|
||
id Int @id @default(autoincrement())
|
||
branch String
|
||
envVars String? // 环境变量(JSON格式),统一存储所有配置
|
||
status String // pending, running, success, failed, cancelled
|
||
commitHash String?
|
||
commitMessage String?
|
||
buildLog String?
|
||
sparseCheckoutPaths String? // 稀疏检出路径,用于monorepo项目
|
||
startedAt DateTime @default(now())
|
||
finishedAt DateTime?
|
||
valid Int @default(1)
|
||
createdAt DateTime @default(now())
|
||
updatedAt DateTime @updatedAt
|
||
createdBy String
|
||
updatedBy String
|
||
|
||
projectId Int
|
||
Project Project? @relation(fields: [projectId], references: [id])
|
||
pipelineId Int
|
||
}
|