648540858
2023-02-01 7470e1fe8ea4ee316a1f76fb18e93d63df1686b7
优化数据库自动更新功能
1个文件已添加
1 文件已重命名
2个文件已删除
433 ■■■■ 已修改文件
sql/update.sql 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/genersoft/iot/vmp/conf/FlywayConfig.java 57 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/db/migration/V1.0_20230118__初始化脚本.sql 373 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/db/migration/V2.6.7_20230201__初始化.sql 补丁 | 查看 | 原始文档 | blame | 历史
sql/update.sql
File was deleted
src/main/java/com/genersoft/iot/vmp/conf/FlywayConfig.java
New file
@@ -0,0 +1,57 @@
package com.genersoft.iot.vmp.conf;
import org.flywaydb.core.Flyway;
import org.flywaydb.core.api.FlywayException;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Configuration;
import javax.annotation.PostConstruct;
import javax.sql.DataSource;
/**
 * æ•°æ®åº“自动升级脚本
 */
@Configuration
public class FlywayConfig {
    private final static Logger logger = LoggerFactory.getLogger(FlywayConfig.class);
    @Autowired
    private DataSource dataSource;
    @PostConstruct
    public void migrate() {
        Flyway flyway = Flyway.configure()
                .dataSource(dataSource)
                .locations("db/migration")//sql文件名称规则:"V20210625.17.30__V1.0.sql"
                // è‡ªåŠ¨åˆ›å»ºflyway元数据表标识
                .baselineOnMigrate(true)
                .baselineVersion("0")
                // ç¦æ­¢flyway执行清理
                .cleanDisabled(true)
                .table("flyway_schema_history_wvp")
                // å¯¹äºŽå¼€å‘环境, å¯èƒ½æ˜¯å¤šäººåä½œå¼€å‘, å¾ˆå¯èƒ½å…ˆ apply äº†è‡ªå·±æœ¬åœ°çš„æœ€æ–° SQL ä»£ç , ç„¶åŽå‘现其他同事早先时候提交的 SQL ä»£ç è¿˜æ²¡æœ‰ apply,
                // æ‰€ä»¥ å¼€å‘环境应该设置 spring.flyway.outOfOrder=true, è¿™æ · flyway å°†èƒ½åŠ è½½æ¼æŽ‰çš„è€ç‰ˆæœ¬ SQL æ–‡ä»¶;
                // è€Œç”Ÿäº§çŽ¯å¢ƒåº”è¯¥è®¾ç½® spring.flyway.outOfOrder=false
                .outOfOrder(true)
                .encoding("UTF-8")
                .load();
        try {
            flyway.migrate();
        } catch (FlywayException e) {
            logger.error("[数据库自动升级]配置第一次加载出错", e);
            try {
                flyway.repair();//生成版本记录表
                logger.info("[数据库自动升级]配置修复成功");
                flyway.migrate();
                logger.info("[数据库自动升级]配置重新加载成功");
            } catch (Exception e1) {
                logger.error("[数据库自动升级]配置第二次加载出错", e1);
                throw e1;
            }
        }
    }
}
src/main/resources/db/migration/V1.0_20230118__³õʼ»¯½Å±¾.sql
File was deleted
src/main/resources/db/migration/V2.6.7_20230201__³õʼ»¯.sql