• 若依框架前后端分离版,集成数据库版本控制flyway


    1. 在admin模块的pom.xml增加依赖
            <!-- 数据库版本控制 -->
            <dependency>
                <groupId>org.flywaydb</groupId>
                <artifactId>flyway-core</artifactId>
                <version>7.15.0</version>
            </dependency>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    1. 在admin模块下的resources 的配置文件spring下增加
      # 数据库版本管理
      flyway:
        #是否启用
        enabled: true
        # 字符编码
        encoding: utf-8
        # 对执行迁移时基准版本的描述
        baseline-description: BaseLineInitialize
        # 开始执行基准迁移时对现有的schema的版本打标签,默认值为1.
        baseline-version: 1.0.0
        # 是否允许无序的迁移,默认 false
        out-of-order: false
        # 当读取元数据表时是否忽略错误的迁移,默认false
        ignore-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
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    1. 在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 {
    
        @Autowired
        private 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;
    
        @PostConstruct
        public 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();
        }
    
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54
    • 55
    • 56
    • 57
    • 58
    • 59
    • 60
    • 61
    • 62
    • 63
    • 64
    • 65
    1. 在admin模块下的resources下面增加目录db/migration
    2. 开始在db/migration下面增加sql文件,文件命名有要求在这里插入图片描述
      在这里插入图片描述
    3. 启动项目,看看自己的sql是否生效,生效则成功,其他情况自己解决去吧!
  • 相关阅读:
    前端--性能优化【上篇】--网络优化与页面渲染优化
    el-checkbox 对勾颜色调整
    Java数据结构-二叉树
    【考研】数据结构考点——顺序查找
    [ICCV-23] DeformToon3D: Deformable Neural Radiance Fields for 3D Toonification
    TSINGSEE青犀省级高速公路视频上云联网方案:全面实现联网化、共享化、智能化
    Golang基础 流程控制 循环控制
    MySQL数据库索引的数据结构
    VS2010配置gdal1.10.0 gdal1.10.1编译
    SpringBoot_minio sdk使用自签名https证书错误处理
  • 原文地址:https://blog.csdn.net/l2x1314258/article/details/134332046