1. 程式人生 > >Flyway 的使用及Spring Boot整合Flyway

Flyway 的使用及Spring Boot整合Flyway

一、簡單介紹

Flyway 是一個開源、跨環境的資料庫遷移工具,它強烈主張簡單性和約定性而不是配置。

Flyway 是一個便於多人開發對資料庫管理的工具,將sql語句寫入檔案中,只需要在控制檯輸入指令就可以完成資料庫的修改

二、使用方法

參考:Flyway官方文件

首先新增maven依賴,如果你使用其他管理工具,請依照官網進行使用

<!--引入flyway外掛-->
<plugin>
    <groupId>org.flywaydb</groupId>
    <artifactId>flyway-maven-plugin</artifactId>
    <version>5.2.4</version>
    <configuration>
        <url>jdbc:mysql://localhost:3306/db_community</url>
        <user>root</user>
        <password>root</password>
    </configuration>
    <dependencies>
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>5.1.6</version>
        </dependency>
    </dependencies>
</plugin>

你只需要會sql語句的寫法即可,將你需要執行的sql寫入一個檔案,檔案命名規則為V1.2__Description.sql,前面一個大寫字母V,接上數字,然後再寫兩個下劃線,中間是你自定義檔名,儘量做到見名知意,檔案以.sql結尾

存放目錄為:resources/db/migration

開啟idea控制檯,輸入mvn flyway:migrate,出現BUILD SUCCESS即執行成功,即使報錯,列印的日誌也很清楚,可以很快的找到錯誤點

我在上面的檔案寫了建立user表的語句,執行後發現數據庫額外多了一個flyway_schema_history表,這張表實際上記錄了你操作的資訊

如果我想為user表新增一個bio欄位,直接新建一個sql檔案,起好名字,寫入sql語句,執行命令,切記,不能在上一個檔案裡直接修改!!!

可以看到,真的多了一個欄位

flyway_schema_history表結構如下

三、常見錯誤

如果你遇到這樣的錯誤,百度對應版本,修改版本,使資料庫和Flyway版本在同一水平

這個錯誤是由於sql檔名寫錯了導致的,特別注意是兩個下劃線!!

相關推薦

Flyway 的使用Spring Boot整合Flyway

一、簡單介紹 Flyway 是一個開源、跨環境的資料庫遷移工具,它強烈主張簡單性和約定性而不是配置。 Flyway 是一個便於多人開發對資料庫管理的工具,將sql語句寫入檔案中,只需要在控制檯輸入指令就可以完成資料庫的修改 二、使用方法 參考:Flyway官方文件 首先新增maven依賴,如果你使用其

Spring Boot 整合 Flyway 實現資料庫版本控制

在專案迭代開發中,難免會有更新資料庫 Schema 的情況,比如新增新表、在表中增加欄位或者刪除欄位等,那麼當我對資料庫進行一系列操作後,如何快速地在其他同事的電腦上同步?如何在測試/生產伺服器上快速同步? ![](https://img-blog.csdnimg.cn/2020050711360495

Spring boot 整合資料庫版本管理工具-flyway

步驟: 1:在pom檔案中新增Flyway的maven依賴 org.flywaydb flyway-core 4.1.2 2:在resource目錄下建立資料庫sql集合資料夾,Flyway預設該資料夾名字為:db/migration 3:在applicat

Spring Boot整合Spirng-data-jpa使用

Spring-data-jpa可根據實體類自動建立表結構,提供基本的增刪改查方法,資料訪問層非常簡潔,只是一層介面。 1.pom引進依賴 <!--dataSource--> <dependency> <groupI

Spring Boot整合RedisRedisTemplate常用操作

Spring Boot整合Redis maven依賴 <!-- redis 依賴 --> <dependency> <groupId>org.springframework.boot</groupId> <

Spring Boot 整合Mybatis 之 Mapper外掛(自動生成XMLMapper程式碼)

pom檔案 主要程式碼 <dependencies> <dependency> <groupId>mysql</groupId> <artifactI

Spring boot 整合mybatis通用mapper配置步驟注意事項

一、新增依賴 二、繼承通用mapper,可以重寫和選擇需要的mapper方法,可以去掉一些不需要的方法(一般直接繼承即可) Mapper3提供的全部的方法,可以檢視Mapper3通用介面大全 三、application.properties配置 四、設定dao路徑 在

Spring boot 整合CXF webservice遇到的一些問題解決,

在spring boot整合CXF開發是遇到的一些問題    以及整合方式整合過程    網上資料引入cxf-spring-boot-starter-jaxws依賴即可<dependency> <groupId>org.apache.cxf&l

Spring boot 整合Spring Security過程中的出現的關於Session scope的異常排查解決方案

背景介紹 最近做的一個專案,其一需要用到Spring 的oauth認證功能, 其二需要對spring 的ContextRefreshedEvent 這個事件進行監聽,實現一部分自定義註解的功能(具體功能不作贅述),本來以為毫不相關的兩個功能,卻出現了一些意料之

Spring Boot 整合 Shiro實現認證授權管理

Spring Boot Shiro 本示例要內容 基於RBAC,授權、認證 加密、解密 統一異常處理 redis session支援 介紹 Apache Shiro 是一個功能強大且易於使用的Java安全框架,可執行身份驗證,授權,加密和會話管理。藉助Shiro易於理解的API,您可以快速輕鬆地保護任何應

spring-boot整合dubbo:Spring-boot-dubbo-starter

hub pack 自動配置 china end service get exceptio 整合 為什麽要寫這個小工具 如果你用過Spring-boot來提供dubbo服務,相信使用中有很多“不爽”的地方。既然使用spring boot,那麽能用註解的地方絕不用xml配置,這

Spring Boot 整合 Elasticsearch,實現 function score query 權重分查詢

search 小寫 業務 jpg 啟動會 last cti cal agen 摘要: 原創出處 www.bysocket.com 「泥瓦匠BYSocket 」歡迎轉載,保留摘要,謝謝! 『 預見未來最好的方式就是親手創造未來 – 《史蒂夫·喬布斯

spring boot整合mybatis深坑之c3p0的詳細配置

text context ati reat source ast type fig oot 項目地址:https://gitee.com/zhangjunqing/spring-boot/tree/master/springboot-mybatis-notice 本人在c3

spring boot整合swagger ui (RESTFUL接口的文檔在線自動生成+功能測試功能軟件,前後端分離快速開發)

oot images user builder img iop spi update and swagger ui可以通過來攔截controller層,生成請求API,並將其展示在瀏覽器當中。我們可以直接通過瀏覽器來查看和調試接口。 1 添加maven依賴

Spring boot整合jsp

jstl標簽庫 中學 encoding 正常 group lan 名稱 free vax   這幾天在集中學習Spring boot+Shiro框架,因為之前view層用jsp比較多,所以想在spring boot中配置jsp,但是spring boot官方不推薦使用jsp

spring boot 整合mybatis

參考 plugins odin system stack name incr xmlns xsd 參考: http://blog.csdn.net/saytime/article/details/74783296 spring boot可以使用全註解的方式進行開發,極大的提

spring boot整合mybatis+mybatis-plus

可靠 nic false system ttr .post 代碼生成 -i filters Spring boot對於我來說是一個剛接觸的新東西,學習過程中,發現這東西還是很容易上手的,Spring boot沒配置時會默認使用Spring data jpa,這東西可以說一個

spring boot整合quartz定時任務案例

blank pos jdk com post 4.0 learn int idea 1.運行環境 開發工具:intellij idea JDK版本:1.8 項目管理工具:Maven 4.0.0 2.GITHUB地址 https://github.com/nbfujx/spr

Spring-Boot整合freemarker引入靜態資源css、js等(轉)

mark pan 創建 line path main 實現 content -m 一、概述springboot 默認靜態資源訪問的路徑為:/static 或 /public 或 /resources 或 /META-INF/resources 這樣的地址都必須定義在src/

企業分布式微服務雲SpringCloud SpringBoot mybatis (十三)Spring Boot整合MyBatis

ech 字段 osc 操作 with public assert 連接 ref Spring中整合MyBatis就不多說了,最近大量使用Spring Boot,因此整理一下Spring Boot中整合MyBatis的步驟。搜了一下Spring Boot整合MyBatis的文