主頁 > 知識庫 > Flyway數(shù)據(jù)庫版本控制的教程詳解

Flyway數(shù)據(jù)庫版本控制的教程詳解

熱門標簽:呼叫中心市場需求 智能手機 鐵路電話系統(tǒng) 美圖手機 檢查注冊表項 銀行業(yè)務(wù) 服務(wù)器配置 網(wǎng)站文章發(fā)布

前言:

最近工作上遇到個問題,項目開發(fā)過程中,開發(fā)代碼可以通過svn來版本控制,但數(shù)據(jù)庫又該如何來管理呢?多個人接觸數(shù)據(jù)庫,當對表、字段或數(shù)據(jù)修改后,又怎么來同步呢?經(jīng)過苦尋,發(fā)現(xiàn)了個叫flyway的開源項目:http://flywaydb.org/ ,java編寫,官方的介紹就是我的初衷,豈能不心動?

官網(wǎng)是英文的,查了下居然沒有中文文檔,難道沒有中國人用?

慢慢看了下官方文檔,試著做了下,一次成功?。x開電腦,蹦達幾下,繼續(xù)坐回電腦)

自己寫個小教程吧

1、將flyway-core-2.3.jar放到項目lib中,下載地址:http://flywaydb.org/getstarted/download.html

2、在src目錄下建立保存sql版本文件的路徑:src/db/migration,flyway默認查找路徑,可以改,但沒必要。


3、在sql版本文件路徑中增加sql文件,命名規(guī)則,如:V1__2014_4_13.sql ,V開頭+版本號+雙下劃線+描述,描述中可以有下劃線,后綴為sql。別問能不能修改這個規(guī)則,否則,我咬你。

4、增加flyway的java類,有命令行工具,但還是java類用起來方便,如下:

package com.cms.flyway;

import java.io.IOException;
import java.util.Properties;

import com.googlecode.flyway.core.Flyway;

public class FlywayApp {
 
 // 讀取數(shù)據(jù)庫配置參數(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ù)庫版本升級
 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ù)器啟動的時候或者定時器 執(zhí)行該類的migration()方法即可。

6、第一次執(zhí)行會生成一個專門存放數(shù)據(jù)庫schema_version的表


7、以后數(shù)據(jù)庫有了新的改動,導(dǎo)出新版本sql文件(如:mysqldump -u -p databasename>/xx.sql)改為新版本命名文件放到db.migration路徑下,flyway會自動幫你更新數(shù)據(jù)庫版本的。

總結(jié)

到此這篇關(guān)于Flyway數(shù)據(jù)庫版本控制的教程詳解的文章就介紹到這了,更多相關(guān)Flyway數(shù)據(jù)庫版本控制內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

您可能感興趣的文章:
  • SpringBoot整合Flyway的方法(數(shù)據(jù)庫版本遷移工具)
  • 淺談SpringBoot之開啟數(shù)據(jù)庫遷移的FlyWay使用
  • Java 中Flyway的使用詳解
  • java開發(fā)flyway的方法
  • SpringBoot項目集成Flyway進行數(shù)據(jù)庫版本控制的詳細教程

標簽:紅河 樂山 長治 滄州 河南 沈陽 上海 新疆

巨人網(wǎng)絡(luò)通訊聲明:本文標題《Flyway數(shù)據(jù)庫版本控制的教程詳解》,本文關(guān)鍵詞  ;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 收縮
    • 微信客服
    • 微信二維碼
    • 電話咨詢

    • 400-1100-266