Flyway數(shù)據(jù)庫(kù)版本控制的教程詳解
前言:
最近工作上遇到個(gè)問(wèn)題,項(xiàng)目開(kāi)發(fā)過(guò)程中,開(kāi)發(fā)代碼可以通過(guò)svn來(lái)版本控制,但數(shù)據(jù)庫(kù)又該如何來(lái)管理呢?多個(gè)人接觸數(shù)據(jù)庫(kù),當(dāng)對(duì)表、字段或數(shù)據(jù)修改后,又怎么來(lái)同步呢?經(jīng)過(guò)苦尋,發(fā)現(xiàn)了個(gè)叫flyway的開(kāi)源項(xiàng)目:http://flywaydb.org/ ,java編寫(xiě),官方的介紹就是我的初衷,豈能不心動(dòng)?
官網(wǎng)是英文的,查了下居然沒(méi)有中文文檔,難道沒(méi)有中國(guó)人用?
慢慢看了下官方文檔,試著做了下,一次成功?。x開(kāi)電腦,蹦達(dá)幾下,繼續(xù)坐回電腦)
自己寫(xiě)個(gè)小教程吧
1、將flyway-core-2.3.jar放到項(xiàng)目lib中,下載地址:http://flywaydb.org/getstarted/download.html
2、在src目錄下建立保存sql版本文件的路徑:src/db/migration,flyway默認(rèn)查找路徑,可以改,但沒(méi)必要。
3、在sql版本文件路徑中增加sql文件,命名規(guī)則,如:V1__2014_4_13.sql ,V開(kāi)頭+版本號(hào)+雙下劃線(xiàn)+描述,描述中可以有下劃線(xiàn),后綴為sql。別問(wèn)能不能修改這個(gè)規(guī)則,否則,我咬你。
4、增加flyway的java類(lèi),有命令行工具,但還是java類(lèi)用起來(lái)方便,如下:
package com.cms.flyway; import java.io.IOException; import java.util.Properties; import com.googlecode.flyway.core.Flyway; public class FlywayApp { // 讀取數(shù)據(jù)庫(kù)配置參數(shù) private static Properties config = new Properties(); static { try { config.load(Thread.currentThread().getContextClassLoader().getResourceAsStream("activerecord.properties")); } catch (IOException e) { e.printStackTrace(); } } // 執(zhí)行數(shù)據(jù)庫(kù)版本升級(jí) public static void migration() { // Create the Flyway instance Flyway flyway = new Flyway(); // Point it to the database flyway.setDataSource(config.getProperty("com.et.ar.ActiveRecordBase.url"), config.getProperty("com.et.ar.ActiveRecordBase.username"), config.getProperty("com.et.ar.ActiveRecordBase.password")); flyway.setInitOnMigrate(true); // Start the migration flyway.migrate(); } }
5、在服務(wù)器啟動(dòng)的時(shí)候或者定時(shí)器 執(zhí)行該類(lèi)的migration()方法即可。
6、第一次執(zhí)行會(huì)生成一個(gè)專(zhuān)門(mén)存放數(shù)據(jù)庫(kù)schema_version的表
7、以后數(shù)據(jù)庫(kù)有了新的改動(dòng),導(dǎo)出新版本sql文件(如:mysqldump -u -p databasename>/xx.sql)改為新版本命名文件放到db.migration路徑下,flyway會(huì)自動(dòng)幫你更新數(shù)據(jù)庫(kù)版本的。
總結(jié)
到此這篇關(guān)于Flyway數(shù)據(jù)庫(kù)版本控制的教程詳解的文章就介紹到這了,更多相關(guān)Flyway數(shù)據(jù)庫(kù)版本控制內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Maui Blazor 使用攝像頭實(shí)現(xiàn)代碼
由于Maui Blazor中界面是由WebView渲染,所以再使用Android的攝像頭時(shí)無(wú)法去獲取,因?yàn)樵臄z像頭需要綁定界面組件,這篇文章主要介紹了Maui Blazor 使用攝像頭實(shí)現(xiàn),需要的朋友可以參考下2023-01-01偽靜態(tài)技術(shù)介紹與優(yōu)缺點(diǎn)分析(較完整篇)
偽靜態(tài)太適合用在普通的企業(yè)網(wǎng)站上了——既不要求高并發(fā),但同時(shí)又很在乎seo(搜索引擎優(yōu)化),而且也要求后臺(tái)可動(dòng)態(tài)更新。2009-11-11Django 使用 cookie 實(shí)現(xiàn)簡(jiǎn)單的用戶(hù)管理功能
這篇文章主要介紹了Django 使用 cookie 實(shí)現(xiàn)簡(jiǎn)單的用戶(hù)管理功能,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-06-06做一個(gè)優(yōu)秀程序員應(yīng)該知道的15件事
這篇文章主要介紹了做一個(gè)優(yōu)秀程序員應(yīng)該知道的15件事,寫(xiě)的很好,需要的朋友可以參考下2014-07-07