91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

SpringBoot如何整合Flyway

發布時間:2020-07-18 17:57:37 來源:億速云 閱讀:191 作者:小豬 欄目:編程語言

小編這次要給大家分享的是SpringBoot如何整合Flyway,文章內容豐富,感興趣的小伙伴可以來了解一下,希望大家閱讀完這篇文章之后能夠有所收獲。

Flyway是什么

Flyway是一款開源的數據庫版本管理工具,Flyway可以獨立于應用實現管理并跟蹤數據庫的變更,Flyway根據自己的約定,不需要復雜的配置就可以實現數據的Migrate。Migrations可以寫成SQL腳本,也可以寫在Java代碼中,Flyway還支持Spring Boot。

簡介

在團隊開發當中,有可能每個人都是使用自己本地的數據庫。當數據庫的表或者字段更新時,往往需要告知團隊的其他同事進行更新。
Flyway數據庫版本遷移工具,目的就是解決該問題而誕生的(我自己想的)。每當我們更新數據庫的時候,只需要添加SQL文件到指定目錄中。Flyway會在數據庫創建一個表,專門記錄已更新的SQL文件。當我們下次執行時則不會執行已記錄并且執行成功的SQL文件。

整合

maven

現在的Flyway的最新版本已經到了6.4.2。我用的是6.3.3

<!-- https://mvnrepository.com/artifact/org.flywaydb/flyway-core -->
<dependency>
  <groupId>org.flywaydb</groupId>
  <artifactId>flyway-core</artifactId>
  <version>6.3.3</version>
</dependency>

application配置

搞定了Flyway的依賴后,修改一下SpringBoot的application.ymlapplication.xml配置。

spring:
 flyway:
  url: jdbc:mysql://192.168.138.132:3306/hotel-server&#63;useUnicode=true&characterEncoding=UTF-8 
  user: johnson 
  password: 123456 
  table: flyway_schema_history
  enabled: true
  locations: classpath:db/migration
  clean-disabled: false

flyway配置詳解

url:連接數據庫的Url 默認為spring.datasource.url

user:連接數據庫的賬號 默認為spring.datasource.username

password:連接數據庫的密碼 默認為spring.datasource.password

table:自定義數據庫版本管理表 默認為 flyway_schema_history

enabled:是否開啟 默認為開啟

locations:SQL文件存放路徑 默認 classpath:db/migration

SQL文件

上面的locations參數配置的SQL文件存放路徑為 classpath:db/migrationclasspath對應的目錄就是resources目錄,創建后的目錄如下圖:

SpringBoot如何整合Flyway

SQL文件如上圖,SQL文件名必須為V1.0.x__xxx.sql(注意:這里的下劃線為兩個_,我也是掉坑了才知道),這樣可以對應SQL更新的版本號。啟動了SpringBoot項目后,就會自動幫你執行SQL文件,可以看到數據庫版本控制表中生成的數據:

SpringBoot如何整合Flyway

clean操作

Flyway的clean操作:徹底清除已配置的架構,它將有效地為您提供一個全新的起點。所有對象(表,視圖,過程等)都將被刪除。

spring:
 flyway:
  clean-on-validation-error: true
  clean-disabled: false

clean-on-validation-error:發生驗證的錯誤時是否執行clean操作(如SQL執行失敗),默認false,生產中必須使用false。
clean-disabled:是否禁用clean操作,默認false,生產中必須使用true

如果我們設置 clean-on-validation-error = trueclean-disabled = false
當我們的SQL文件執行失敗,在數據庫版本控制表flyway_schema_history會添加一條失敗的記錄,success字段為0,此時并不會執行clean操作。
當把SQL文件修改正確并執行完后,此時flyway_schema_history會把失敗記錄的success字段由0改為1。并且會執行clean操作!!!!!整個數據庫的表里面的數據都被清空了!(除非你在SQL文件中添加了insert操作)
其實在開發環境我也是不建議使用clean,畢竟填數據也是要時間的。。。

總結

團隊開發當中的必備工具啊!不過生產環境當中記得把clean-disabled改為true

看完這篇關于SpringBoot如何整合Flyway的文章,如果覺得文章內容寫得不錯的話,可以把它分享出去給更多人看到。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

扎赉特旗| 时尚| 呼图壁县| 隆回县| 定兴县| 南城县| 分宜县| 东明县| 诸城市| 渭南市| 曲松县| 图木舒克市| 邵东县| 灯塔市| 临夏市| 贺州市| 友谊县| 沅江市| 新巴尔虎左旗| 沽源县| 尼勒克县| 武胜县| 班戈县| 夏河县| 安陆市| 平塘县| 通州区| 贡觉县| 无棣县| 锦州市| 藁城市| 巫溪县| 滕州市| 保定市| 铜川市| 卫辉市| 乌兰察布市| 江城| 通城县| 无极县| 金华市|