本發(fā)明涉及開發(fā)環(huán)境同步技術(shù)領(lǐng)域,特別涉及一種腳本代碼文件的增量同步方法及系統(tǒng)。
背景技術(shù):
在實(shí)際開發(fā)過程當(dāng)中,通常是多人協(xié)作開發(fā)應(yīng)用程序,每個(gè)人本地都建立有一套開發(fā)環(huán)境,特別是很多數(shù)據(jù)庫的腳本開發(fā),彼此腳本開發(fā)不同步的時(shí)候,經(jīng)常出現(xiàn)開發(fā)停滯、效率低下等問題。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明提供了一種腳本代碼文件的增量同步方法及系統(tǒng),解決了現(xiàn)有技術(shù)腳本開發(fā)不同步導(dǎo)致的開發(fā)停滯和效率低下的技術(shù)問題。
本發(fā)明解決上述技術(shù)問題的技術(shù)方案如下:一種腳本代碼文件的增量同步方法,包括:
s1、實(shí)時(shí)檢查代碼文件管理庫中是否存在最新腳本代碼文件,如是則生成最新記錄保存到數(shù)據(jù)庫的腳本迭代管理表中,所述最新記錄包括:所述最新腳本代碼文件的id、文件名稱、文件存放路徑、更新時(shí)間、文件狀態(tài)、代碼測試的第一目標(biāo)服務(wù)器和最終運(yùn)行環(huán)境的第二目標(biāo)服務(wù)器,所述文件狀態(tài)包括:未測試狀態(tài)、已測試狀態(tài)和已發(fā)布狀態(tài);
s2、獲取所述代碼文件管理庫中為未測試狀態(tài)的第一腳本代碼文件,并同步到所述第一目標(biāo)服務(wù)器,將該同步狀態(tài)保存在日志中;
s3、通過所述第一目標(biāo)服務(wù)器對(duì)所述第一腳本代碼文件進(jìn)行測試,測試完畢后,將所述第一腳本代碼文件狀態(tài)更新為已測試狀態(tài);
s4、獲取所述代碼文件管理庫中為已測試狀態(tài)的第二腳本代碼文件,并同步到所述第二目標(biāo)服務(wù)器,將所述第二腳本代碼文件的狀態(tài)更新為已發(fā)布狀態(tài),并將該同步狀態(tài)保存在所述日志中。
本發(fā)明的有益效果是:通過對(duì)腳本代碼進(jìn)行增量同步,節(jié)省了開發(fā)人員因全量同步所花費(fèi)的精力和時(shí)間,提高了開發(fā)效率。
在上述技術(shù)方案的基礎(chǔ)上,本發(fā)明還可以做如下改進(jìn)。
優(yōu)選地,步驟s2中,獲取所述代碼文件管理庫中為未測試狀態(tài)的第一腳本代碼文件的方法具體包括:
a1、從所述腳本迭代管理表中獲取為未測試狀態(tài)的第一文件的存放路徑;
a2、根據(jù)所述第一文件的存放路徑從所述代碼文件管理庫中獲取所述第一文件對(duì)應(yīng)的第一腳本代碼文件。
優(yōu)選地,步驟s4中,獲取所述代碼文件管理庫中為已測試狀態(tài)的第二腳本代碼文件的方法具體包括:
b1、從所述腳本迭代管理表中獲取為已測試狀態(tài)的第二文件的存放路徑;
b2、根據(jù)所述第二文件的存放路徑從所述代碼文件管理庫中獲取所述第二文件對(duì)應(yīng)的第二腳本代碼文件。
優(yōu)選地,步驟s2中,通過版本構(gòu)建服務(wù)器將所述第一腳本代碼文件同步到所述第一目標(biāo)服務(wù)器。
優(yōu)選地,步驟s4中,通過所述版本構(gòu)建服務(wù)器將所述第二腳本代碼文件同步到所述第二目標(biāo)服務(wù)器。
優(yōu)選地,當(dāng)用戶對(duì)本地開發(fā)環(huán)境中的腳本代碼進(jìn)行增量同步時(shí),所述增量同步方法還包括:
通過所述客戶端從所述第一目標(biāo)服務(wù)器獲取為已測試狀態(tài)的腳本代碼或從所述第二目標(biāo)服務(wù)器獲取為已發(fā)布狀態(tài)的腳本代碼;
將獲取的所述腳本代碼同步到本地開發(fā)環(huán)境。
優(yōu)選地,所述日志包括:客戶端ip地址、用戶id、同步代碼文件名、同步時(shí)間、同步結(jié)果以及同步失敗原因。
優(yōu)選地,所述第一目標(biāo)服務(wù)器為測試服務(wù)器。
一種腳本代碼文件的增量同步系統(tǒng),包括:
檢查模塊,用于實(shí)時(shí)檢查代碼文件管理庫中是否存在最新腳本代碼文件,如是則生成最新記錄保存到數(shù)據(jù)庫的腳本迭代管理表中,所述最新記錄包括:所述最新腳本代碼文件的id、文件名稱、文件存放路徑、更新時(shí)間、文件狀態(tài)、代碼測試的第一目標(biāo)服務(wù)器名稱和最終運(yùn)行環(huán)境的第二目標(biāo)服務(wù)器名稱,所述文件狀態(tài)包括:未測試狀態(tài)、已測試狀態(tài)和已發(fā)布狀態(tài);
第一同步模塊,用于獲取所述代碼文件管理庫中為未測試狀態(tài)的第一腳本代碼文件,并同步到所述第一目標(biāo)服務(wù)器,將該同步狀態(tài)保存在日志中;
測試模塊,用于通過所述第一目標(biāo)服務(wù)器對(duì)所述第一腳本代碼文件進(jìn)行測試,測試完畢后,將所述第一腳本代碼文件的狀態(tài)更新為已測試狀態(tài);
第二同步模塊,用于獲取所述代碼文件管理庫中為已測試狀態(tài)的第二腳本代碼文件,并同步到所述第二目標(biāo)服務(wù)器,將所述第二腳本代碼文件的狀態(tài)更新為已發(fā)布狀態(tài),并將該同步狀態(tài)保存在所述日志中。
優(yōu)選地,所述第一同步模塊包括:
第一獲取子模塊,用于從所述腳本迭代管理表中獲取為未測試狀態(tài)的第一文件的存放路徑;
第二獲取子模塊,用于根據(jù)所述第一文件的存放路徑從所述代碼文件管理庫中獲取所述第一文件對(duì)應(yīng)的第一腳本代碼文件。
所述第二同步模塊包括:
第三獲取子模塊,用于從所述腳本迭代管理表中獲取為已測試狀態(tài)的第二文件的存放路徑;
第四獲取子模塊,用于根據(jù)所述第二文件的存放路徑從所述代碼文件管理庫中獲取所述第二文件對(duì)應(yīng)的第二腳本代碼文件。
附圖說明
圖1為本發(fā)明實(shí)施例提供的一種腳本代碼文件的增量同步方法的流程示意圖;
圖2為本發(fā)明另一實(shí)施例提供的一種腳本代碼文件的增量同步系統(tǒng)的結(jié)構(gòu)示意圖;
圖3為本發(fā)明另一實(shí)施例提供的一種腳本代碼文件的增量同步系統(tǒng)的結(jié)構(gòu)示意圖。
具體實(shí)施方式
以下結(jié)合附圖對(duì)本發(fā)明的原理和特征進(jìn)行描述,所舉實(shí)例只用于解釋本發(fā)明,并非用于限定本發(fā)明的范圍。
如圖1所示,在一實(shí)施例中,提供一種腳本代碼文件的增量同步方法,包括:
s1、實(shí)時(shí)檢查代碼文件管理庫中是否存在最新腳本代碼文件,如是則生成最新記錄保存到數(shù)據(jù)庫的腳本迭代管理表中,最新記錄包括:最新腳本代碼文件的id、文件名稱、文件存放路徑、更新時(shí)間、文件狀態(tài)、代碼測試的第一目標(biāo)服務(wù)器名稱和最終運(yùn)行環(huán)境的第二目標(biāo)服務(wù)器名稱,文件狀態(tài)包括:未測試狀態(tài)、已測試狀態(tài)和已發(fā)布狀態(tài);
s2、獲取代碼文件管理庫中為未測試狀態(tài)的第一腳本代碼文件,并同步到第一目標(biāo)服務(wù)器,將該同步狀態(tài)保存在日志中;
s3、通過第一目標(biāo)服務(wù)器對(duì)第一腳本代碼文件進(jìn)行測試,測試完畢后,將第一腳本代碼文件的狀態(tài)更新為已測試狀態(tài);
s4、獲取代碼文件管理庫中為已測試狀態(tài)的第二腳本代碼文件,并同步到第二目標(biāo)服務(wù)器,將第二腳本代碼文件的狀態(tài)更新為已發(fā)布狀態(tài),并將該同步狀態(tài)保存在日志中。
具體地,開發(fā)人員在本地開發(fā)環(huán)境追加了腳本文件到代碼文件管理庫(比如svn和git等)中,啟動(dòng)代碼文件手機(jī)自動(dòng)化程序化,實(shí)時(shí)檢查代碼庫中增加的數(shù)據(jù)庫代碼腳本文件,如果有最新文件,則生成一條新的記錄,將文件路徑、更新時(shí)間等保存到數(shù)據(jù)庫中的腳本迭代管理表中,啟動(dòng)代碼文件文件分發(fā)自動(dòng)化程序,在數(shù)據(jù)庫腳本迭代管理表當(dāng)中找出各個(gè)服務(wù)器的draft文件(未檢測狀態(tài)的文件),從代碼管理庫當(dāng)中拷貝到指定的測試服務(wù)器,遠(yuǎn)程執(zhí)行該腳本,將該腳本發(fā)布到對(duì)應(yīng)的測試服務(wù)器上,比如服務(wù)器a、b和c,測試完成后標(biāo)記為tested,在數(shù)據(jù)庫腳本迭代管理表當(dāng)中找出tested文件,從代碼管理庫當(dāng)中拷貝到指定的服務(wù)器,遠(yuǎn)程執(zhí)行該腳本,將該腳本發(fā)布到最終運(yùn)行環(huán)境的服務(wù)器上,以供開發(fā)人員進(jìn)行同步。同時(shí),將整個(gè)同步過程記錄在日志中,以便管理人員或開發(fā)人員查詢同步情況,比如同步失敗原因。
應(yīng)理解,通過對(duì)腳本代碼進(jìn)行增量同步,節(jié)省了開發(fā)人員因全量同步所花費(fèi)的精力和時(shí)間,提高了開發(fā)效率。
具體地,步驟s2中,獲取代碼文件管理庫中為未測試狀態(tài)的第一腳本代碼文件的方法具體包括:
a1、從腳本迭代管理表中獲取為未測試狀態(tài)的第一文件的存放路徑;
a2、根據(jù)第一文件的存放路徑從代碼文件管理庫中獲取第一文件對(duì)應(yīng)的第一腳本代碼文件。
具體地,步驟s4中,獲取代碼文件管理庫中為已測試狀態(tài)的第二腳本代碼文件的方法具體包括:
b1、從腳本迭代管理表中獲取為已測試狀態(tài)的第二文件的存放路徑;
b2、根據(jù)第二文件的存放路徑從代碼文件管理庫中獲取第二文件對(duì)應(yīng)的第二腳本代碼文件。
具體地,步驟s2中,通過版本構(gòu)建服務(wù)器將第一腳本代碼文件同步到第一目標(biāo)服務(wù)器。
具體地,步驟s4中,通過版本構(gòu)建服務(wù)器將第二腳本代碼文件同步到第二目標(biāo)服務(wù)器。
具體地,當(dāng)用戶對(duì)本地開發(fā)環(huán)境中的腳本代碼進(jìn)行增量同步時(shí),增量同步方法還包括:
通過客戶端從第一目標(biāo)服務(wù)器獲取為已測試狀態(tài)的腳本代碼或從第二目標(biāo)服務(wù)器獲取為已發(fā)布狀態(tài)的腳本代碼;
將獲取的腳本代碼同步到本地開發(fā)環(huán)境。
開發(fā)人員在開發(fā)端進(jìn)行全量同步的過程包括:1.刪除本地?cái)?shù)據(jù)庫、數(shù)據(jù)庫腳本,刪除本地配置。2.使用工具提供的配置,替換本地的配置文件3.創(chuàng)建和目標(biāo)服務(wù)器同樣的用戶,數(shù)據(jù)庫表空間名。4.復(fù)制目標(biāo)服務(wù)器的數(shù)據(jù)庫的數(shù)據(jù)到本地。5.復(fù)制目標(biāo)服務(wù)器的數(shù)據(jù)庫腳本文件到本地。
開發(fā)人員在開發(fā)端進(jìn)行增量同步的過程包括:1.從本地腳本迭代數(shù)據(jù)庫找到最后一次更新的時(shí)間。2.從服務(wù)器腳本迭代數(shù)據(jù)庫當(dāng)中找到最后一次更新時(shí)間以后,追加的狀態(tài)為released和tested的腳本文件列表。3.從遠(yuǎn)程代碼庫中取得這些腳本文件,并拷貝到本地開發(fā)環(huán)境。4.在本地發(fā)布這些腳本,同步完畢。相比于全量同步,增量同步更節(jié)約時(shí)間和精力,大大提高了開發(fā)效率。
具體地,日志包括:客戶端ip地址、用戶id、同步代碼文件名、同步時(shí)間、同步結(jié)果以及同步失敗原因。
具體地,第一目標(biāo)服務(wù)器為測試服務(wù)器。
如圖2所示,在另一實(shí)施例中,提供一種腳本代碼文件的增量同步系統(tǒng),包括:
檢查模塊1,用于實(shí)時(shí)檢查代碼文件管理庫中是否存在最新腳本代碼文件,如是則生成最新記錄保存到數(shù)據(jù)庫的腳本迭代管理表中,最新記錄包括:最新腳本代碼文件的id、文件名稱、文件存放路徑、更新時(shí)間、文件狀態(tài)、代碼測試的第一目標(biāo)服務(wù)器名稱和最終運(yùn)行環(huán)境的第二目標(biāo)服務(wù)器名稱,文件狀態(tài)包括:未測試狀態(tài)、已測試狀態(tài)和已發(fā)布狀態(tài);
第一同步模塊2,用于獲取代碼文件管理庫中為未測試狀態(tài)的第一腳本代碼文件,并同步到第一目標(biāo)服務(wù)器,將該同步狀態(tài)保存在日志中;
測試模塊3,用于通過第一目標(biāo)服務(wù)器對(duì)第一腳本代碼文件進(jìn)行測試,測試完畢后,將第一腳本代碼文件的狀態(tài)更新為已測試狀態(tài);
第二同步模塊4,用于獲取代碼文件管理庫中為已測試狀態(tài)的第二腳本代碼文件,并同步到第二目標(biāo)服務(wù)器,將第二腳本代碼文件的狀態(tài)更新為已發(fā)布狀態(tài),并將該同步狀態(tài)保存在日志中。
具體地,如圖3所示,第一同步模塊2包括:
第一獲取子模塊21,用于從腳本迭代管理表中獲取為未測試狀態(tài)的第一文件的存放路徑;
第二獲取子模塊22,用于根據(jù)第一文件的存放路徑從代碼文件管理庫中獲取第一文件對(duì)應(yīng)的第一腳本代碼文件。
如圖3所示,第二同步模塊4包括:
第三獲取子模塊41,用于從腳本迭代管理表中獲取為已測試狀態(tài)的第二文件的存放路徑;
第四獲取子模塊42,用于根據(jù)第二文件的存放路徑從代碼文件管理庫中獲取第二文件對(duì)應(yīng)的第二腳本代碼文件。
以上所述僅為本發(fā)明的較佳實(shí)施例,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。