国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

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

antyiwei / 3213人閱讀

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

概述

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

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

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

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

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

3. 更新腳本:

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

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

為文件名稱使用以下格式

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

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

5. 記錄應用升級腳本的歷史,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表,這張表存儲的是當前所有應用實例的數(shù)據(jù)庫版本信息(應用啟動會檢查版本與此表中的版本是否一致)
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 微服務交流群: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://specialneedsforspecialkids.com/yun/17601.html

相關文章

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

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

    singerye 評論0 收藏0

發(fā)表評論

0條評論

antyiwei

|高級講師

TA的文章

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