好湿?好紧?好多水好爽自慰,久久久噜久噜久久综合,成人做爰A片免费看黄冈,机机对机机30分钟无遮挡

主頁 > 知識庫 > Flyway的簡單介紹及使用詳解

Flyway的簡單介紹及使用詳解

熱門標簽:北京外呼系統咨詢電話 襄陽外呼增值業務線路解決方案 海南人工外呼系統哪家好 高德地圖標注公司位置需要錢嗎 慶陽外呼系統定制開發 合肥阿里辦理400電話號 怎么去掉地圖標注文字 地圖標注資源分享注冊 廊坊地圖標注申請入口

一、開發時管理數據庫遇到的問題:

現在開發一般都是團隊開發,這樣就會出現項目同步的問題,代碼同步可以通過SVN工具管理起來,那數據庫同步怎么辦呢?理想的情況下,在開發新項目的時候會首先把業務理清楚,把數據庫表設計好,然后將數據庫交給專門的人員維護,也就不存在數據庫同步的問題了。但實際情況呢?需求從項目開始到項目結束一直在變,很多公司就沒有專門的數據庫維護人員,數據庫大家都在操作,都在修改,如果團隊之間溝通及時還好,大家每次更新代碼后順便也更新一下數據庫,如果溝通不及時,呵呵(大家自行腦補)。。。這樣數據庫不同步的問題就凸顯出來了。

二、Flyway 的簡單介紹:

1、概念:

Flyway是獨立于數據庫的應用、管理并跟蹤數據庫變更的數據庫版本管理工具。用通俗的話講,Flyway可以像SVN管理不同人的代碼那樣,管理不同人的sql腳本,從而做到數據庫同步。

2、支持的數據庫類型:

Oracle, SQL Server, SQL Azure, DB2, DB2 z/OS, MySQL (including Amazon RDS), MariaDB, Google Cloud SQL, PostgreSQL (including Amazon RDS and Heroku), Redshift, Vertica, H2, Hsql, Derby, SQLite, SAP HANA, solidDB, Sybase ASE and Phoenix。

3、sql腳本的命名規范:

V+版本號(版本號的數字間以"."或"_"分隔開)+雙下劃線(用來分隔版本號和描述)+文件描述+后綴名,例如:V2017.9.30__Update.sql。

注:版本號不能相同!

4、Flyway讀取sql腳本的默認位置:

項目的源文件夾下的db/migration目錄。

5、指令:

一共就6個基本指令:migrate、clean、info、validate、baseline、repair。

三、Flyway 的優勢:

1、不僅支持sql 腳本,還支持Java 代碼直接操作數據庫(flyway-core-x.x.x.jar);

2、有Maven 插件;

3、支持命令行;

4、與Spring 框結合,很方便地實現應用啟動時自動檢查并升級數據庫的功能。

四、Flyway命令行工具的使用:

1、解壓下載flyway-commandlin 版本并解壓到本地,結構圖如下:

  

  2、將sql腳本放在Flyway默認的db/migration目錄下,如果放在其他位置需要修改conf/flyway.conf文件中的flyway.locations。

3、根據自己的情況修改conf/flyway.conf文件中的flyway.url、flyway.user、flyway.password。

4、在命令行執行migrate命令。

五、與Maven項目結合使用:

1、引入依賴坐標:

!-- flyway -->
 dependency>
 groupId>org.flywaydb/groupId>
 artifactId>flyway-core/artifactId>
 version>4.2.0/version>
 dependency> 

2、在src/main/resources目錄下建立存放sql版本文件的路徑dataBase/sqlite(也可以寫默認路徑db/migration),并將sql文件放在下面。

3、增加flyway的java類:

package com.xxxxxx.flyway;
 
 import javax.sql.DataSource;
 import org.flywaydb.core.Flyway;
 
 public class MigrationSqlite {
 
 private DataSource dataSource;
 
 public void setDataSource(DataSource dataSource) {
 this.dataSource = dataSource;
 }
 
 public void migrate() {
 //初始化flyway類
 Flyway flyway = new Flyway();
 //設置加載數據庫的相關配置信息
 flyway.setDataSource(dataSource);
 //設置存放flyway metadata數據的表名,默認"schema_version",可不寫
 flyway.setTable("SCHMA_VERSION");
 //設置flyway掃描sql升級腳本、java升級腳本的目錄路徑或包路徑,默認"db/migration",可不寫
 flyway.setLocations("dataBase/sqlite");
 //設置sql腳本文件的編碼,默認"UTF-8",可不寫
 flyway.setEncoding("UTF-8");
 
 flyway.migrate();
 }
 }

4、在spring中實例化第3步的java類:

bean id="MigrationSqlite" class="com.xxxxxx.flyway.MigrationSqlite" init-method="migrate">
 property name="dataSource" ref="dataSource">/property>
 /bean>

從上面的bean 定義中我們可以看到,我們為flywayMigration 這個bean 實例注入了一個數據源,Flyway 的所有操作將針對這個數據源進行;同時我們通過init-method 屬性指定了Spring 在實例化該bean 以后,主動執行該bean 的migrate 方法,而該方法內會執行Flyway 更新數據庫的操作。至此,我們達到了在應用啟動時,Spring 實例化上下文的時候,在Spring 實例化flywayMigration 這個bean 的時候,自動執行Flyway 更新數據庫的操作。

5、處理Flyway 更新數據庫和代碼邏輯操作數據庫時的沖突(自己目前沒遇到,網上找到的,先留著備不時之需):

如果Flyway 還在更新數據庫,沒有完成更新操作之前,應用程序的其他邏輯已經開始使用數據庫進行其他操作了,會導致應用程序產生很多bug ,甚至根本運行不起來。要解決這個問題,我們可以利用Spring 的bean 依賴原理,讓關鍵的數據庫操作bean 依賴于flywayMigration 這個bean ,達到在flywayMigration 沒有實例化完成(數據庫更新操作完成)之前,不能進行任何其他數據庫相關操作。

bean id="sessionFactory" class="org.springframework.orm.hibernate4.LocalSessionFactoryBean" depends-on="MigrationSqlite">
 property name="dataSource" ref="dataSource" />
 /bean>

這樣,每次啟動項目時就會自動更新數據庫,不必在為數據庫不同步煩惱了。

參考文章:

1、https://flywaydb.org/documentation/ (官網)

2、http://casheen.iteye.com/blog/1749916

3、http://shuzheng5201314.iteye.com/blog/2044517

4、https://www.jb51.net/article/191708.htm

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

您可能感興趣的文章:
  • 快速掌握和使用Flyway的詳細教程
  • 深入淺析java中flyway使用簡介
  • Spring Boot項目使用Flyway的詳細教程
  • Java 中Flyway的使用詳解
  • 淺談SpringBoot之開啟數據庫遷移的FlyWay使用
  • 詳解Spring Boot中使用Flyway來管理數據庫版本

標簽:平頂山 鎮江 鶴崗 株洲 臺州 商丘 哈密 綿陽

巨人網絡通訊聲明:本文標題《Flyway的簡單介紹及使用詳解》,本文關鍵詞  Flyway,的,簡單,介紹,及,使用,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《Flyway的簡單介紹及使用詳解》相關的同類信息!
  • 本頁收集關于Flyway的簡單介紹及使用詳解的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 又粗又大又爽| 97国产精华在线播放| 剑河县| 免费男人添女人下身视频高清| 一本三道a无线v一区v视频| 麻豆专区一区二区三区四区五区| 美女屁股高清图片| 宝贝你好骚| 我和岳疯狂性做爰全过| 男操女免费视频| 啊啊啊啊啊啊爽| 激情边缘| 亲子伦视频一区二区三区 | 大渡口区| 欧美激情第一欧美精品图片一| 国产日产精品久久快鸭界面介绍| 宅男看片午夜大片啪啪| 欧美三级睡美人在线观看| 国产精品久久久久精品日日软件| 91精品国产AⅤ一区二区农民| 男插女视频网站| 91chinesevideo永久地址| 特级做A爰片毛片免费69| 中国女人与狥一级A片 | 透明内裤男模尺寸好大| 女生张开腿让男人捅| 成人做爰黄AA片免费播放贝微微 | 美女逼逼图片| 羞羞视频在线观看永久网站| 5级做人爱c视版免费视频| 惩罚play玩到尿失禁| 色噜噜狠狠成人影院| 久久久久免费看黄a级试看| 亚洲国产日韩精品一区二区三区| 香港三级在线看| 德国老妇激情性xxxx| 国产不卡高清在线观看视频| 国产人妻14p| 精品日本一线二线三| 欧美日韩亚洲国产| 24小时在线播放免费高清视频|