feat: 引入 Flyway 数据库迁移管理 [AC-INIT]

- 添加 flyway-core 和 flyway-mysql 依赖

- 将 init.sql 转换为 Flyway 迁移脚本 V1__init.sql

- 删除旧的 init.sql 和 V1__add_channel_type.sql

- 配置 application.yml Flyway 设置
This commit is contained in:
MerCry 2026-02-24 11:03:59 +08:00
parent 339dccde43
commit 067c70f116
4 changed files with 19 additions and 19 deletions

10
pom.xml
View File

@ -104,6 +104,16 @@
<artifactId>resilience4j-timelimiter</artifactId> <artifactId>resilience4j-timelimiter</artifactId>
<version>${resilience4j.version}</version> <version>${resilience4j.version}</version>
</dependency> </dependency>
<dependency>
<groupId>org.flywaydb</groupId>
<artifactId>flyway-core</artifactId>
</dependency>
<dependency>
<groupId>org.flywaydb</groupId>
<artifactId>flyway-mysql</artifactId>
</dependency>
</dependencies> </dependencies>
<build> <build>

View File

@ -6,6 +6,12 @@ spring:
name: wecom-robot name: wecom-robot
profiles: profiles:
active: dev active: dev
flyway:
enabled: true
locations: classpath:db/migration
baseline-on-migrate: true
baseline-version: 0
validate-on-migrate: true
mybatis-plus: mybatis-plus:
mapper-locations: classpath:mapper/*.xml mapper-locations: classpath:mapper/*.xml

View File

@ -1,10 +0,0 @@
-- TASK-003: 数据库 Schema 变更 [AC-MCA-11]
-- Session 表新增 channel_type 字段
ALTER TABLE `session`
ADD COLUMN IF NOT EXISTS `channel_type` VARCHAR(20) DEFAULT 'wechat'
COMMENT '渠道类型: wechat/douyin/jd'
AFTER `kf_id`;
-- 添加索引
CREATE INDEX IF NOT EXISTS `idx_channel_type` ON `session` (`channel_type`);

View File

@ -1,7 +1,5 @@
-- 创建数据库 -- V1__init.sql - 初始化数据库表结构
CREATE DATABASE IF NOT EXISTS wecom_robot DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; -- Flyway 迁移脚本
USE wecom_robot;
-- 会话表 -- 会话表
CREATE TABLE IF NOT EXISTS `session` ( CREATE TABLE IF NOT EXISTS `session` (
@ -63,7 +61,7 @@ CREATE TABLE IF NOT EXISTS `transfer_log` (
INDEX `idx_trigger_time` (`trigger_time`) INDEX `idx_trigger_time` (`trigger_time`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='转人工记录表'; ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='转人工记录表';
-- 快捷回复表 (可选) -- 快捷回复表
CREATE TABLE IF NOT EXISTS `quick_reply` ( CREATE TABLE IF NOT EXISTS `quick_reply` (
`id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '自增ID', `id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '自增ID',
`cs_id` VARCHAR(64) DEFAULT NULL COMMENT '客服ID为空表示公共', `cs_id` VARCHAR(64) DEFAULT NULL COMMENT '客服ID为空表示公共',
@ -74,7 +72,3 @@ CREATE TABLE IF NOT EXISTS `quick_reply` (
PRIMARY KEY (`id`), PRIMARY KEY (`id`),
INDEX `idx_cs_id` (`cs_id`) INDEX `idx_cs_id` (`cs_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='快捷回复表'; ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='快捷回复表';
-- 如果表已存在,添加新字段
ALTER TABLE `session` ADD COLUMN IF NOT EXISTS `wx_service_state` INT DEFAULT 0 COMMENT '微信会话状态';
ALTER TABLE `session` ADD COLUMN IF NOT EXISTS `channel_type` VARCHAR(20) DEFAULT 'wechat' COMMENT '渠道类型: wechat/douyin/jd';