最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Spring Boot項目使用Flyway的詳細教程

 更新時間:2020年07月25日 09:12:06   作者:dreamingodd  
這篇文章主要介紹了Spring Boot項目使用Flyway,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下

Purpose

開發(fā)人員在合作的時候經常遇到以下場景:

1.開發(fā)人員A在自己的本地數(shù)據(jù)庫做了一些表結構的改動,并根據(jù)這些改動調整了DAO層的代碼,然后將代碼上傳到svn或git等版本控制服務器上。此時如果開發(fā)人員B拉取了A的代碼改動,在運行項目的時候很可能會報錯,因為B的本地SQL數(shù)據(jù)庫并沒有修改。

2.在項目上線的時候,當服務器拉取的版本控制服務器的最新修改后,必須同時運行SQL數(shù)據(jù)庫的修改腳本,如果忘了跑數(shù)據(jù)庫腳本,那么會出現(xiàn)嚴重的問題。

傳統(tǒng)的解決方案就是在一個固定的文件夾中,將需要跑的SQL腳本放在里面。開發(fā)人員在合作的時候,A修改了數(shù)據(jù)庫,在B遇到問題的時候,可能需要交流溝通一下,去跑需要的腳本。在項目上線的過程中,也是運維人員在規(guī)定的文件夾中,找到需要跑的SQL腳本。運行它們。

Flyway等migration工具就是要把開發(fā)人員和運維人員從以上這些場景的繁瑣工作中解放出來,如果使用maven的話,那么在項目編譯(SpringBoot運行Application)的時候,SQL數(shù)據(jù)庫的改動就自動進入數(shù)據(jù)庫,只要啟動成功,開發(fā)或者運維人員對SQL數(shù)據(jù)庫的migrate過程是無感知的,項目依然可以照常運行。

Technical Background

To read and practice this document, user ought to be able to develop projects via git, SpringBoot and MySQL.

Instructions - Run Demo

1.下載demo源碼:

git clone https://git.oschina.net/dreamingodd/spring-boot-flyway-demo.git

2.使用Intellij或Eclipse import existing maven project。

3.在本地mysql console中運行:

create database flyway_test;
use flyway_test;

4.修改配置文件,將username和password改成本地MySQL數(shù)據(jù)庫的。

5.運行FlywayTestApplication類。

6.在mysql console中運行

show tables;

即可看到以下結果:

(schema_version表保存了數(shù)據(jù)庫版本信息,哪些腳本已經被執(zhí)行,先不用管)

7.一張demo表被自動創(chuàng)建出來了。

What Happened

以上過程是如何實現(xiàn)的呢?

Flyway在maven項目編譯(SpringBoot運行Application)的時候,自動掃描resources/db/migration目錄下的文件,

打開V1_demo.sql:

就是剛剛自動運行的SQL腳本。添加腳本的話,依次使用V2__XXX.sql,V3__XXX.sql,以此類推,腳本中使用正常的SQL語句即可,沒有任何學習負擔。

這樣,在開發(fā)人員合作以及項目部署的時候,F(xiàn)lyway就起到了加強自動化部署、實踐持續(xù)交付等作用。

Instruction - Use in Current Project

那么如何在已經開發(fā)了一段時間的項目中使用Flyway呢?

1.Maven配置

<dependencies>中加上

<dependency>
  <groupId>org.flywaydb</groupId>
  <artifactId>flyway-core</artifactId>
  <version>4.0.3</version>
</dependency>

<build>中加上

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

2.application.properties配置

flyway.baselineOnMigrate=true

如果是application.yml,則為

flyway.baselineOnMigrate: true

3.在resources/db/migration中添加V1__XXX.sql,mvn compile(運行Application)即可看到SQL腳本運行結果。(注意V1后面是兩個下劃線)

Appendix

1.出現(xiàn)錯誤的解決方法:

如果你的SQL腳本運行失敗,到schema_version表中刪除最新一條數(shù)據(jù),

比如我故意寫一個錯誤的SQL語句到V2__demo2.sql,運行mvn compile(運行Application)。

可以看到最新一條的success列為false。

如果部分成功了,要手動rollback,修改SQL腳本正確后再次mvn compile(運行Application)。

2.更多信息請訪問官網:https://flywaydb.org/

到此這篇關于Spring Boot項目使用Flyway的文章就介紹到這了,更多相關Spring Boot使用Flyway內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • Java?swing實現(xiàn)應用程序對數(shù)據(jù)庫的訪問問題

    Java?swing實現(xiàn)應用程序對數(shù)據(jù)庫的訪問問題

    這篇文章主要介紹了Java?swing實現(xiàn)應用程序對數(shù)據(jù)庫的訪問,本次實驗需要做一個GUI界面和一個連接查詢功能,在論壇上借鑒了其他大佬獲取網站內容的部分代碼,然后自己做了一個及其簡陋的swing界面,算是把這個實驗完成了,需要的朋友可以參考下
    2022-09-09
  • JDBC插入數(shù)據(jù)返回數(shù)據(jù)主鍵代碼實例

    JDBC插入數(shù)據(jù)返回數(shù)據(jù)主鍵代碼實例

    這篇文章主要介紹了JDBC插入數(shù)據(jù)返回數(shù)據(jù)主鍵代碼實例,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-11-11
  • springboot自動配置沒有生效的問題定位(條件斷點)

    springboot自動配置沒有生效的問題定位(條件斷點)

    這篇文章主要介紹了springboot自動配置未生效問題定位,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,下面我們來學習一下吧
    2019-06-06
  • idea如何關閉頁面顯示的瀏覽器圖標

    idea如何關閉頁面顯示的瀏覽器圖標

    這篇文章主要介紹了idea如何關閉頁面顯示的瀏覽器圖標問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-07-07
  • Java同步框架AbstractQueuedSynchronizer詳解

    Java同步框架AbstractQueuedSynchronizer詳解

    本篇文章主要介紹了Java同步框架AbstractQueuedSynchronizer詳解,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-10-10
  • 詳解springboot shiro jwt實現(xiàn)權限管理

    詳解springboot shiro jwt實現(xiàn)權限管理

    為什么使用jwt呢,因為可以通過URL,POST參數(shù)或者在HTTP header發(fā)送,因為數(shù)據(jù)量小,傳輸速度也很快。本篇通過具體代碼來進行詳情解析,對大家的學習或工作具有一定的參考借鑒價值
    2021-09-09
  • springboot植入pagerHelper的超詳細教程

    springboot植入pagerHelper的超詳細教程

    這篇文章主要介紹了springboot植入pagerHelper的超詳細教程,本文通過圖文并茂的形式給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-01-01
  • spring AOP代理執(zhí)行@EnableAspectJAutoProxy的exposeProxy屬性詳解

    spring AOP代理執(zhí)行@EnableAspectJAutoProxy的exposeProxy屬性詳解

    這篇文章主要為大家介紹了spring AOP代理執(zhí)行@EnableAspectJAutoProxy的exposeProxy屬性詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-09-09
  • Java泛型和Class類用法示例

    Java泛型和Class類用法示例

    這篇文章主要介紹了Java泛型和Class類用法,結合實例形式分析了java使用泛型限制class類避免強制類型轉換相關操作技巧,需要的朋友可以參考下
    2019-07-07
  • maven 使用assembly 進行打包的方法

    maven 使用assembly 進行打包的方法

    這篇文章主要介紹了maven 使用assembly 進行打包的方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-09-09

最新評論

通化市| 横山县| 海南省| 永川市| 岳池县| 和龙市| 错那县| 龙川县| 称多县| 清水河县| 淳化县| 惠安县| 彭山县| 博湖县| 岢岚县| 桃源县| 建湖县| 南康市| 西畴县| 固阳县| 福州市| 奉节县| 黄梅县| 麻江县| 延安市| 赫章县| 略阳县| 香格里拉县| 日土县| 保定市| 敦煌市| 来宾市| 调兵山市| 海林市| 鸡西市| 桃园县| 西贡区| 乌恰县| 临高县| 淳安县| 墨脱县|