激情久久久_欧美视频区_成人av免费_不卡视频一二三区_欧美精品在欧美一区二区少妇_欧美一区二区三区的

服務器之家:專注于服務器技術(shù)及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術(shù)|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - Java教程 - Spring Boot項目使用Flyway的詳細教程

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

2020-07-25 13:52dreamingodd Java教程

這篇文章主要介紹了Spring Boot項目使用Flyway,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下

Purpose

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

1.開發(fā)人員A在自己的本地數(shù)據(jù)庫做了一些表結(jié)構(gòu)的改動,并根據(jù)這些改動調(diào)整了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中運行:

?
1
2
create database flyway_test;
use flyway_test;

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

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

5.運行FlywayTestApplication類。

6.在mysql console中運行

?
1
show tables;

即可看到以下結(jié)果:

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

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

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

What Happened

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

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

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

打開V1_demo.sql:

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

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

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

Instruction - Use in Current Project

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

1.Maven配置

<dependencies>中加上

?
1
2
3
4
5
<dependency>
  <groupId>org.flywaydb</groupId>
  <artifactId>flyway-core</artifactId>
  <version>4.0.3</version>
</dependency>

<build>中加上

?
1
2
3
4
5
<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腳本運行結(jié)果。(注意V1后面是兩個下劃線)

Appendix

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

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

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

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

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

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

2.更多信息請訪問官網(wǎng):https://flywaydb.org/

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

原文鏈接:https://www.cnblogs.com/dreamingodd/p/6125435.html

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 亚洲男人的天堂在线视频 | 国产精品久久久免费 | 成年人高清视频在线观看 | 欧美日韩高清一区二区三区 | 国产午夜精品一区二区三区免费 | 草草影院地址 | 国产一级伦理片 | 国产女厕所 | 午夜视频成人 | 国产精品久久久久久久久久三级 | 亚洲天堂在线电影 | 91午夜在线观看 | 日韩av在线影院 | 把娇妻调教成暴露狂 | 精品国产视频一区二区三区 | 在线天堂中文字幕 | 国产精品视频在线观看免费 | 亚洲精品一区二区三区在线看 | xnxx 日本19 | 欧日一级片 | 国产精品视频一区二区三区四区五区 | 国产精品久久99精品毛片三a | 免费毛片播放 | 娇妻被各种姿势c到高潮小说 | 国产精品成人久久久久a级 欧美特黄一级高清免费的香蕉 | 久久成人视屏 | 欧美精品一区二区三区久久久 | 中文区中文字幕免费看 | xxxx18韩国护士hd老师 | 久久久日韩精品一区二区 | 国产1区视频 | 在线观看中文字幕国产 | 欧美一级h | 在线视频国产一区 | 欧美雌雄另类xxxxx | 欧美成人激情在线 | 久久99国产综合精品 | 国产精品午夜在线观看 | 国产在线精品一区二区三区不卡 | 成年免费视频黄网站在线观看 | 久久美女色视频 |