框架前后端分离版,集成数据库版本控制flyway"/>
若依框架前后端分离版,集成数据库版本控制flyway
- 在admin模块的pom.xml增加依赖
<!-- 数据库版本控制 --><dependency><groupId>org.flywaydb</groupId><artifactId>flyway-core</artifactId><version>7.15.0</version></dependency>
- 在admin模块下的resources 的配置文件spring下增加
# 数据库版本管理flyway:#是否启用enabled: true# 字符编码encoding: utf-8# 对执行迁移时基准版本的描述baseline-description: BaseLineInitialize# 开始执行基准迁移时对现有的schema的版本打标签,默认值为1.baseline-version: 1.0.0# 是否允许无序的迁移,默认 falseout-of-order: false# 当读取元数据表时是否忽略错误的迁移,默认falseignore-future-migrations: false# 可以支持多个location, 用','隔开locations: classpath:db/migration#是否创建元数据表validate-on-migrate: true# flyway 的 clean 命令会删除指定 schema 下的所有 table, 生产务必禁掉。这个默认值是false 理论上作为默认配置是不科学的。clean-disabled: false# 如果数据库不是空表,需要设置成 true,否则启动报错baseline-on-migrate: true# 版本控制日志表,默认flyway_schema_history,不同系统建议修改数据table: flyway_schema_history
- 在framework 下面定义flyway配置bean
package com.qilaike.framework.config;import javax.annotation.PostConstruct;
import javax.sql.DataSource;import org.flywaydb.core.Flyway;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Configuration;@Configuration
public class FlywayConfig {@Autowiredprivate DataSource dataSource;// 字符编码@Value("${spring.flyway.encoding}")private String encoding;// 对执行迁移时基准版本的描述@Value("${spring.flyway.baseline-description}")private String baselineDescription;// 是否自动执行基准迁移@Value("${spring.flyway.baseline-on-migrate}")private boolean baselineOnMigrate;// 指定 baseline 的版本号@Value("${spring.flyway.baseline-version}")private String baselineVersion;// 迁移时是否校验@Value("${spring.flyway.validate-on-migrate}")private boolean validateOnMigrate;// 是否允许无序的迁移@Value("${spring.flyway.out-of-order}")private boolean outOfOrder;// 当读取元数据表时是否忽略错误的迁移@Value("${spring.flyway.ignore-future-migrations}")private boolean ignoreFutureMigrations;// 当初始化好连接时要执行的SQL//@Value("${flyway.init-sql}")//private String initSql;@PostConstructpublic void migrate() {Flyway flyway = Flyway.configure().dataSource(dataSource).encoding(encoding).baselineDescription(baselineDescription).baselineOnMigrate(baselineOnMigrate).baselineVersion(baselineVersion).validateOnMigrate(validateOnMigrate).outOfOrder(outOfOrder).ignoreFutureMigrations(ignoreFutureMigrations)//.initSql(initSql).load();flyway.migrate();}}
- 在admin模块下的resources下面增加目录db/migration
- 开始在db/migration下面增加sql文件,文件命名有要求
- 启动项目,看看自己的sql是否生效,生效则成功,其他情况自己解决去吧!
更多推荐
若依框架前后端分离版,集成数据库版本控制flyway
发布评论