针对提供的若依项目(v3.8.4)中关于Flyway的配置和使用,以下是该项目的摘要总结:
---
**若依项目(v3.8.4)中的Flyway配置与使用摘要**:
1. **依赖管理配置**:
* 在`pom.xml`(ruoyi)中通过`<dependencyManagement>`引入了Flyway的核心依赖。
* 在`pom.xml`(ruoyi-admin)中也添加了相应的Flyway依赖。
2. **SQL脚本存放位置**:
* 在`resources`目录下新建`db/migration`目录,用于存放SQL迁移脚本。
* 版本1.0.0中的SQL脚本用于初始化,而版本1.0.1中的SQL脚本用于测试,例如创建`flyway_test`表并插入一条数据。
3. **Flyway配置**:
* 在`application.yml`中配置了Flyway的启用、编码、基准迁移等设置,并配置了数据库连接信息。
4. **解决项目启动时的问题**:
* 项目中有两个地方使用了`@PostConstruct`注解,导致在Flyway的数据库配置加载之前执行,可能会报错。
* 解决方案是找到这两个配置类(`SysDictTypeServiceImpl`和`SysConfigServiceImpl`),注释掉初始化方法。然后,在若依system模块中新建`RuntimeConfig`类,实现`ApplicationListener<ContextRefreshedEvent>`接口,将初始化操作移至此处,以改变加载时机。
5. **Maven插件配置**:
* 在ruoyi的`pom.xml`中增加了MySQL依赖和Flyway Maven插件的配置。
* 通过该插件,可以使用Maven命令来进行数据库迁移操作。
**总结**:若依项目通过引入Flyway进行了数据库版本控制,确保了不同环境下数据库结构的一致性。通过调整某些初始化的加载时机,解决了与Flyway初始化顺序相关的问题。同时,利用Maven插件方便地进行数据库迁移操作。