diff --git a/pom.xml b/pom.xml index cb6f7f6..c92b321 100644 --- a/pom.xml +++ b/pom.xml @@ -104,6 +104,16 @@ resilience4j-timelimiter ${resilience4j.version} + + + org.flywaydb + flyway-core + + + + org.flywaydb + flyway-mysql + diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml index 0d01b43..303dd11 100644 --- a/src/main/resources/application.yml +++ b/src/main/resources/application.yml @@ -6,6 +6,12 @@ spring: name: wecom-robot profiles: active: dev + flyway: + enabled: true + locations: classpath:db/migration + baseline-on-migrate: true + baseline-version: 0 + validate-on-migrate: true mybatis-plus: mapper-locations: classpath:mapper/*.xml diff --git a/src/main/resources/db/migration/V1__add_channel_type.sql b/src/main/resources/db/migration/V1__add_channel_type.sql deleted file mode 100644 index c6373e2..0000000 --- a/src/main/resources/db/migration/V1__add_channel_type.sql +++ /dev/null @@ -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`); diff --git a/src/main/resources/db/init.sql b/src/main/resources/db/migration/V1__init.sql similarity index 90% rename from src/main/resources/db/init.sql rename to src/main/resources/db/migration/V1__init.sql index d4183f2..3508b0c 100644 --- a/src/main/resources/db/init.sql +++ b/src/main/resources/db/migration/V1__init.sql @@ -1,7 +1,5 @@ --- 创建数据库 -CREATE DATABASE IF NOT EXISTS wecom_robot DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; - -USE wecom_robot; +-- V1__init.sql - 初始化数据库表结构 +-- Flyway 迁移脚本 -- 会话表 CREATE TABLE IF NOT EXISTS `session` ( @@ -63,7 +61,7 @@ CREATE TABLE IF NOT EXISTS `transfer_log` ( INDEX `idx_trigger_time` (`trigger_time`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='转人工记录表'; --- 快捷回复表 (可选) +-- 快捷回复表 CREATE TABLE IF NOT EXISTS `quick_reply` ( `id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '自增ID', `cs_id` VARCHAR(64) DEFAULT NULL COMMENT '客服ID,为空表示公共', @@ -74,7 +72,3 @@ CREATE TABLE IF NOT EXISTS `quick_reply` ( PRIMARY KEY (`id`), INDEX `idx_cs_id` (`cs_id`) ) 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';