gmnon.cn-疯狂蹂躏欧美一区二区精品,欧美精品久久久久a,高清在线视频日韩欧美,日韩免费av一区二区

站長資訊網
最全最豐富的資訊網站

Flyway 使用詳解

Flyway 使用詳解

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

現在開發一般都是團隊開發,這樣就會出現項目同步的問題,代碼同步可以通過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 版本并解壓到本地,結構圖如下:

  Flyway 使用詳解

  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文件放在下面。

Flyway 使用詳解

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>

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

推薦教程:《Java教程》

贊(0)
分享到: 更多 (0)
?
網站地圖   滬ICP備18035694號-2    滬公網安備31011702889846號
gmnon.cn-疯狂蹂躏欧美一区二区精品,欧美精品久久久久a,高清在线视频日韩欧美,日韩免费av一区二区
想看黄色一级片| 日韩欧美视频网站| 欧美精品色视频| 九九热只有这里有精品| 青青在线免费观看| 久久久久人妻精品一区三寸| 日韩小视频在线播放| av免费播放网址| 手机精品视频在线| 国产91沈先生在线播放| 国产在线观看福利| 青娱乐精品在线| 波多野结衣作品集| 狠狠精品干练久久久无码中文字幕 | 亚洲天堂一区二区在线观看| 免费国产成人看片在线| 精品少妇无遮挡毛片| 91精品国产毛片武则天| 中文字幕av专区| 女人和拘做爰正片视频| 一本色道久久88亚洲精品综合 | 干日本少妇首页| 免费人成自慰网站| 日韩欧美一级在线| 欧美a级黄色大片| 三年中文在线观看免费大全中国| 日韩精品视频久久| 麻豆av免费在线| 中国丰满人妻videoshd| 一本大道熟女人妻中文字幕在线 | 日韩av高清在线看片| 麻豆tv在线播放| 37pao成人国产永久免费视频| 男人操女人逼免费视频| 欧美精品色婷婷五月综合| 国产淫片av片久久久久久| 男人日女人bb视频| 亚洲无吗一区二区三区| 一本大道东京热无码aⅴ| 六月婷婷在线视频| 毛片毛片毛片毛片毛| 虎白女粉嫩尤物福利视频| 欧美激情国内自拍| 内射国产内射夫妻免费频道| 亚洲xxxx2d动漫1| 轻点好疼好大好爽视频| 亚洲午夜激情影院| 天天爽夜夜爽一区二区三区| 男女啪啪的视频| 嫩草影院国产精品| 国产成人无码精品久久久性色| 中文字幕国产免费| 精品免费国产一区二区| 欧美黑人经典片免费观看| 日本香蕉视频在线观看| 手机版av在线| 在线观看国产福利| 老司机午夜av| 69久久久久久| 午夜免费一级片| 黄色污污在线观看| 欧美国产日韩激情| 激情五月开心婷婷| 已婚少妇美妙人妻系列| 噼里啪啦国语在线观看免费版高清版| 欧美 日韩 亚洲 一区| 日韩在线第三页| 久久精品亚洲天堂| 国产在线观看欧美| 精品视频无码一区二区三区| 国产日韩一区二区在线观看| 中文字幕av不卡在线| 日本高清免费观看| 国产在线观看福利| 在线免费黄色小视频| 国产午夜福利100集发布| 91视频最新入口| 天天干天天色天天干| 91传媒久久久| 黄色网络在线观看| 成人精品视频一区二区| 欧美丝袜在线观看| 污污动漫在线观看| 97超碰青青草| 成人午夜精品久久久久久久蜜臀| 亚洲欧美在线精品| 五月婷婷之综合激情| 男人舔女人下面高潮视频| 女人天堂av手机在线| 青青视频在线播放| 波多野结衣家庭教师在线播放| 久久艹这里只有精品| 99视频在线观看视频| 国产精品久久久久久久99| 在线观看的毛片| 99热一区二区三区| 日韩精品视频在线观看视频| 黄网站色视频免费观看| 亚洲小视频在线播放| 国产亚洲黄色片| 视色视频在线观看| 国产一区二区三区在线免费| 大荫蒂性生交片| 三级在线视频观看| 精品这里只有精品| 国产又粗又大又爽的视频| 被灌满精子的波多野结衣| aa免费在线观看| av动漫在线看| 日韩黄色短视频| 欧美成人三级在线播放| 黄色a级片免费| 欧美精品久久久久久久自慰 | 免费不卡av在线| 黄黄视频在线观看| 色网站在线视频| 亚欧在线免费观看| 日韩xxxx视频| 最新av网址在线观看| 吴梦梦av在线| 看看黄色一级片| 国产又大又长又粗又黄| 91精品999| 日本一二三四区视频| 手机看片日韩国产| 国内精品国产三级国产99| 日本丰满少妇黄大片在线观看| 中文字幕成人在线视频| 天天操天天干天天做| 久久久无码中文字幕久...| 韩国黄色一级大片| 日韩欧美精品在线观看视频| 美女网站色免费| 欧美黄色免费网址| 伊人成色综合网| 国产欧美精品一二三| 中文字幕无码精品亚洲资源网久久| 久久久久免费看黄a片app| 国产精品专区在线| 日本超碰在线观看| 中文字幕日本最新乱码视频| 亚洲欧美偷拍另类| 色偷偷中文字幕| 久久国产成人精品国产成人亚洲| 无码日韩人妻精品久久蜜桃| 国产一区一区三区| 中文字幕22页| 69堂免费视频| 日日摸日日碰夜夜爽无码| 三上悠亚av一区二区三区| 女性女同性aⅴ免费观女性恋| 国产九九九视频| av在线免费看片| 在线观看的毛片| 国产主播中文字幕| 中文字幕网av| 天天操天天爽天天射| www国产黄色| 日韩一级片播放| www亚洲成人| 97超碰免费观看| 成熟丰满熟妇高潮xxxxx视频| 青草网在线观看| 无码aⅴ精品一区二区三区浪潮| 成品人视频ww入口| 女人扒开屁股爽桶30分钟| 精品99在线视频| 永久免费的av网站| 免费在线看黄色片| 黑森林精品导航| 800av在线免费观看| 激情五月亚洲色图| 亚洲爆乳无码精品aaa片蜜桃| 国产二区视频在线| 久久6免费视频| 欧美午夜性视频| 特黄特黄一级片| 欧美日韩在线观看不卡| 日韩中文字幕在线不卡| 免费看污黄网站| 国产精品va无码一区二区| 国产精品久久久久久久99| 国产高清精品在线观看| 精品视频在线观看一区| 欧美精品在欧美一区二区| www.com黄色片| 久久久久久综合网| 国产性生活一级片| 国产系列第一页| 中国女人做爰视频| 日韩精品一区二区免费| 亚洲精品在线网址| 亚欧精品在线视频| gogogo免费高清日本写真| 亚洲AV无码成人精品一区| 手机在线免费毛片| 缅甸午夜性猛交xxxx| 青青在线视频免费| 精品国产乱码久久久久久1区二区| 婷婷视频在线播放|