成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

數(shù)據(jù)庫版本管理方案(正式版V0.0.2)

antyiwei / 3218人閱讀

摘要:每次上級版本號更新,下級版本號默認(rèn)清零更新腳本由開發(fā)者進行編寫的數(shù)據(jù)庫更新腳本,此腳本中包含多個更新數(shù)據(jù)庫的語句,使用英文分號分隔標(biāo)準(zhǔn)的數(shù)據(jù)庫語句寫法,不必特意使用事務(wù)腳本,程序會將每一個更新腳本文件當(dāng)做一個事務(wù)來處理。

概述

軟件開發(fā)過程中,往往會遇到版本管理問題,也常常會遇到服務(wù)多版本管理問題,也常常會遇到不同版本的服務(wù)之間,數(shù)據(jù)庫字段不同、建表語句不同的問題,那么如何在不同版本間進行平滑升級,那么就需要有一系列的規(guī)范(暫不涉及回退方案):

升級步驟 自動化管理,由程序在啟動前操作: 1. 檢查數(shù)據(jù)庫中的當(dāng)前版本,檢查程序版本(version.properties中) 2. 檢查與當(dāng)前版本相關(guān)聯(lián)的升級腳本(這一步驟依賴于與數(shù)據(jù)庫版本相對應(yīng)的文件命名規(guī)范) 3. 如果找到了文件,則執(zhí)行文件內(nèi)容并驗證輸出,如果出現(xiàn)錯誤則退出,拋出異常 4. 如果沒有發(fā)現(xiàn)腳本,則直接退出,拋出異常 5. 重復(fù)步驟1 注意事項 1. 版本控制:

數(shù)據(jù)庫中存在db_schema_version表,用來管理當(dāng)前所有應(yīng)用實例的版本信息,每個項目中,都應(yīng)包含一個version的描述文件(version.properties),有版本變動,即修改其版本信息,db_schema_version表結(jié)構(gòu)見第6條

2. 版本號控制:<主版本號>.<子版本號>.<修訂號>

第一部分在系統(tǒng)的重要發(fā)布或重大階段會進行改變,比如每幾個月一次。下面兩部分是由開發(fā)者控制的。子版本改變意味著數(shù)據(jù)庫中加入了破壞性的改動(例如新的必需字段),這使得“舊的”應(yīng)用程序與新的數(shù)據(jù)庫架構(gòu)不再兼容。修訂號則是每次非破壞性的變動發(fā)生時(例如新的索引、新表、新的可選字段等等)進行遞增的。每次上級版本號更新,下級版本號默認(rèn)清零

3. 更新腳本:

由開發(fā)者進行編寫的數(shù)據(jù)庫更新腳本,此腳本中包含多個更新數(shù)據(jù)庫的語句,使用英文分號分隔(標(biāo)準(zhǔn)的數(shù)據(jù)庫語句寫法),不必特意使用事務(wù)腳本,java程序會將每一個更新腳本文件當(dāng)做一個事務(wù)來處理。添加注釋需要使用“ /注釋/ ”方式來寫

4. 更新腳本文件命名規(guī)范:

為文件名稱使用以下格式

<前綴>_<數(shù)據(jù)庫版本表中的當(dāng)前版本號>_<目標(biāo)版本號>_<有關(guān)升級的其它信息>.sql,
例如:report_1.0.1_1.0.2_rename_column.sql

目前,前綴我們默認(rèn)使用產(chǎn)品名稱來描述,用來和每個項目中配置文件中的product_name對應(yīng)

5. 記錄應(yīng)用升級腳本的歷史,db_version_history表
Column name Column type Nullable 描述
id int(11) Not null 自增長ID
product_name varchar(50) Not null 產(chǎn)品名稱
version varchar(50) Not null 最新版本號
update_by varchar(50) Not null 更新人
update_on datetime Not null 更新時間
reason varchar(1000) Not null 更新原因
6. db_schema_version表,這張表存儲的是當(dāng)前所有應(yīng)用實例的數(shù)據(jù)庫版本信息(應(yīng)用啟動會檢查版本與此表中的版本是否一致)
Column name Column type Nullable 描述
id int(11) Not null 自增長ID
version varchar(50) Not null 最新版本號
product_name varchar(50) Not null 產(chǎn)品名稱
desc varchar(1000) Not null 描述
update_on datetime Not null 更新時間
update_by varchar(50) Not null 更新人
full_schema varchar(50) Not null 完整的建表語句文件名

by 劉迎光@螢火蟲工作室
OpenBI交流群:495266201
MicroService 微服務(wù)交流群:217722918
mail: liuyg#liuyingguang.cn
博主首頁(==防止爬蟲==):http://blog.liuyingguang.cn
OpenBI問答社區(qū):http://www.openbi.tk

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/17601.html

相關(guān)文章

  • 使用bower可能會遇到的5個問題

    摘要:是業(yè)界使用率比較高的前端組件管理工具,基本上類似于,但解決了項目中同一個庫的引入多個版本的問題。然后覺得的這個是有問題的,沒有接受,于是很可能后面從新拉的不包含這部分接口。 bower是業(yè)界使用率比較高的前端組件管理工具,基本上類似于npm,但解決了項目中同一個庫的引入多個版本的問題。大家知道,同一個庫版本并存這對于node來說很正常,但對于瀏覽器來說幾乎是不可接受的。以下是我們使用b...

    singerye 評論0 收藏0

發(fā)表評論

0條評論

antyiwei

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<