feat: 支持通过Flyway自动初始化数据库

- 将 starter 初始化脚本迁移到 db/migration,并保留 V1-V3 作为首批迁移

- 清理旧 sql/initdb 挂载与历史分段 SQL,避免 Docker 启动时重复导库

- 更新 README、应用配置和中间件编排,统一空库启动方式
This commit is contained in:
2026-03-24 12:36:44 +08:00
parent 07d8193e80
commit b1a16ccf18
19 changed files with 149 additions and 2357 deletions

View File

@@ -28,9 +28,14 @@ EasyFlow 是一个面向企业场景的 Java AI 应用开发平台,提供智
## 快速启动(开发环境)
### 1. 初始化数据库
在 MySQL 中导入
- `sql/01-easyflow-v2.ddl.sql`
- `sql/02-easyflow-v2.data.sql`
只需要提前创建空库,例如
```sql
CREATE DATABASE easyflow CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
```
表结构、Quartz 表和基础数据会在后端启动时由 Flyway 自动迁移完成。
当前初始化脚本仅保留 3 段:`V1__quartz.sql``V2__easyflow_schema.sql``V3__easyflow_seed.sql`
### 2. 启动后端
在项目根目录执行:
@@ -42,6 +47,8 @@ java -jar easyflow-starter/easyflow-starter-all/target/easyflow-starter-all-0.0.
默认端口:`8111`(见 `easyflow-starter/easyflow-starter-all/src/main/resources/application.yml`)。
首次连接空库时,应用会自动执行 `db/migration` 下的迁移脚本并初始化默认管理员、菜单、角色和模型服务商数据。
### 3. 启动前端
管理后台:
@@ -59,7 +66,7 @@ pnpm install
pnpm dev
```
默认测试账号:`admin / 123456`
默认测试账号:`admin / Easy@2026`
## 后端 Jar 包构建与部署
@@ -78,6 +85,8 @@ mvn -DskipTests -Dmaven.javadoc.skip=true clean package
java -jar easyflow-starter/easyflow-starter-all/target/easyflow-starter-all-0.0.1.jar --spring.profiles.active=prod
```
生产环境同样只需要保证目标数据库已创建为空库Flyway 会在应用启动时自动完成迁移。
可通过环境变量覆盖关键配置(示例):
```bash