摘要:每次上級版本號更新,下級版本號默認清零更新腳本由開發(fā)者進行編寫的數(shù)據(jù)庫更新腳本,此腳本中包含多個更新數(shù)據(jù)庫的語句,使用英文分號分隔標準的數(shù)據(jù)庫語句寫法,不必特意使用事務腳本,程序會將每一個更新腳本文件當做一個事務來處理。
概述
升級步驟 自動化管理,由程序在啟動前操作: 1. 檢查數(shù)據(jù)庫中的當前版本,檢查程序版本(version.properties中) 2. 檢查與當前版本相關聯(lián)的升級腳本(這一步驟依賴于與數(shù)據(jù)庫版本相對應的文件命名規(guī)范) 3. 如果找到了文件,則執(zhí)行文件內(nèi)容并驗證輸出,如果出現(xiàn)錯誤則退出,拋出異常 4. 如果沒有發(fā)現(xiàn)腳本,則直接退出,拋出異常 5. 重復步驟1 注意事項 1. 版本控制:軟件開發(fā)過程中,往往會遇到版本管理問題,也常常會遇到服務多版本管理問題,也常常會遇到不同版本的服務之間,數(shù)據(jù)庫字段不同、建表語句不同的問題,那么如何在不同版本間進行平滑升級,那么就需要有一系列的規(guī)范(暫不涉及回退方案):
數(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 | 更新原因 |
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
摘要:是業(yè)界使用率比較高的前端組件管理工具,基本上類似于,但解決了項目中同一個庫的引入多個版本的問題。然后覺得的這個是有問題的,沒有接受,于是很可能后面從新拉的不包含這部分接口。 bower是業(yè)界使用率比較高的前端組件管理工具,基本上類似于npm,但解決了項目中同一個庫的引入多個版本的問題。大家知道,同一個庫版本并存這對于node來說很正常,但對于瀏覽器來說幾乎是不可接受的。以下是我們使用b...
閱讀 1136·2019-08-30 12:44
閱讀 642·2019-08-29 13:03
閱讀 2551·2019-08-28 18:15
閱讀 2419·2019-08-26 10:41
閱讀 3082·2019-08-26 10:28
閱讀 3029·2019-08-23 16:54
閱讀 1983·2019-08-23 15:16
閱讀 802·2019-08-23 14:55