SpringBoot整合flyway實現數據庫版本管理

導入flyway的maven座標以及插件

<!--flyway 數據庫版本管理工具依賴-->
		<dependency>
			<groupId>org.flywaydb</groupId>
			<artifactId>flyway-core</artifactId>
			<version>5.2.1</version>
		</dependency>
			<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-jdbc</artifactId>
		</dependency>

這裏注意版本,springBoot整合使用5.0以上的,flyway使用jdbc連接數據庫

			<plugin>
				<groupId>org.flywaydb</groupId>
				<artifactId>flyway-maven-plugin</artifactId>
				<version>4.0.3</version>
			</plugin>

然後在根目錄下簡歷文件夾db/migration

這是flyway默認讀取sql腳本的文件夾地址,如果要改名字,需要另行配置
在這裏插入圖片描述
文件夾中的sql文件名字有一定規則,隨意取名會出錯,詳細規則如下

  • prefix: default: V (大寫哦)
  • version: 版本號,也可以使用大小版本組合的方式,小版本號用單_區分
  • separator: 分隔符,雙下劃線__
  • description: 描述(你懂得,必須要有意義)
  • suffix: 後綴 default: .sql
    腳本文件中的內容
    在這裏插入圖片描述創建配置類,用於初始化flyway
package com.guoheng.hazard.config;

import org.flywaydb.core.Flyway;
import org.flywaydb.core.api.configuration.FluentConfiguration;
import org.springframework.boot.autoconfigure.flyway.FlywayMigrationStrategy;
import org.springframework.stereotype.Component;

/**
 * 類功能描述: 數據庫初始化flyway
 *
 * @author fbl
 * @date 2019-12-13 15:50
 */
@Component
public class BaselineOnMigrateMigrationStrategy implements FlywayMigrationStrategy {
    @Override
    public void migrate(Flyway flyway) {
        FluentConfiguration configure = Flyway.configure();
        configure.baselineOnMigrate(true);
        flyway.migrate();
    }
}

當應用程序運行時,數據庫會創建一個‘flyway_schema_history’表,表中記錄着數據庫版本號和描述信息
在這裏插入圖片描述
每當你創建一個新的sql腳本時,運行應用程序,會運行相應的sql腳本,升級你的數據庫,並在表中生產相應記錄,如果刪除記錄,再次啓動程序時會又一次執行相應的sql腳本。
如果sql腳本已被執行,在修改相對應的sql,再次啓動程序會報錯

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章