一種生成數(shù)據(jù)庫腳本的方法及裝置制造方法
【專利摘要】本申請公開了一種生成數(shù)據(jù)庫腳本的方法及裝置,所述方法包括:加載數(shù)據(jù)庫腳本源文件,所述數(shù)據(jù)庫腳本源文件中包含多個(gè)不同地區(qū)業(yè)務(wù)的公共腳本部分和區(qū)別腳本部分,在所述數(shù)據(jù)庫腳本源文件中通過編譯選項(xiàng)標(biāo)識所述區(qū)別腳本部分;獲取用戶對需要生成數(shù)據(jù)庫腳本的地區(qū)的選擇,根據(jù)用戶所選地區(qū)對應(yīng)的編譯選項(xiàng)從所述數(shù)據(jù)庫腳本源文件中提取有效代碼,所述有效代碼包含所述公共腳本部分以及用戶所選地區(qū)對應(yīng)的編譯選項(xiàng)所標(biāo)識的區(qū)別腳本部分。本申請?jiān)谀_本中心平臺各地規(guī)則不同的存儲過程都對應(yīng)同一個(gè)數(shù)據(jù)庫腳本源文件,簡化了開發(fā)人員的開發(fā)過程,并加強(qiáng)了版本管理和統(tǒng)一的規(guī)則維護(hù),而且可以清晰地區(qū)分各個(gè)地區(qū)的規(guī)則差異。
【專利說明】一種生成數(shù)據(jù)庫腳本的方法及裝置
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及數(shù)據(jù)庫【技術(shù)領(lǐng)域】,尤其涉及一種生成數(shù)據(jù)庫腳本的方法及裝置。
【背景技術(shù)】
[0002] 近年來隨著通信網(wǎng)絡(luò)的發(fā)展與成熟,全國性開展的業(yè)務(wù)飛速發(fā)展,針對這種全國 性的業(yè)務(wù),需要在全國各地分別發(fā)布業(yè)務(wù)平臺。因?yàn)樗诘赜虻牟煌⑦\(yùn)營商的不同等因素 的限制,因此各地業(yè)務(wù)平臺的功能模塊和運(yùn)行規(guī)則也存在大大小小的各種差異。
[0003] 這種差異反映在數(shù)據(jù)庫腳本方面,即需要維護(hù)很多套包含不同規(guī)則的數(shù)據(jù)庫腳 本。傳統(tǒng)的維護(hù)數(shù)據(jù)庫腳本的方式是:在收到修改需求后,從局方平臺提取腳本到實(shí)驗(yàn)室進(jìn) 行修改,測試通過后在局方平臺進(jìn)行更新。這種在各地分別進(jìn)行數(shù)據(jù)腳本維護(hù)的方式,需要 維護(hù)很多套腳本,維護(hù)起來非常困難。
[0004] 因此,對數(shù)據(jù)庫腳本的管理以及對數(shù)據(jù)庫腳本在各地的執(zhí)行效率提出了新的要 求:如何簡單有效地進(jìn)行版本控制,開發(fā)人員如何快速開發(fā)各地的代碼,如何簡化各地代碼 的維護(hù)量,如何讓數(shù)據(jù)庫服務(wù)器能夠快速高效地執(zhí)行存儲過程,就成為了目前亟待解決的 問題。
【發(fā)明內(nèi)容】
[0005] 本發(fā)明要解決的技術(shù)問題是提供一種生成數(shù)據(jù)庫腳本的方法及裝置,能夠降低數(shù) 據(jù)庫腳本的維護(hù)量,提高數(shù)據(jù)庫腳本的開發(fā)效率。
[0006] 為解決上述技術(shù)問題,本申請的一種生成數(shù)據(jù)庫腳本的方法,包括:
[0007] 加載數(shù)據(jù)庫腳本源文件,所述數(shù)據(jù)庫腳本源文件中包含多個(gè)不同地區(qū)業(yè)務(wù)的公共 腳本部分和區(qū)別腳本部分,在所述數(shù)據(jù)庫腳本源文件中通過編譯選項(xiàng)標(biāo)識所述區(qū)別腳本部 分;
[0008] 獲取用戶對需要生成數(shù)據(jù)庫腳本的地區(qū)的選擇,根據(jù)用戶所選地區(qū)對應(yīng)的編譯選 項(xiàng)從所述數(shù)據(jù)庫腳本源文件中提取有效代碼,所述有效代碼包含所述公共腳本部分以及用 戶所選地區(qū)對應(yīng)的編譯選項(xiàng)所標(biāo)識的區(qū)別腳本部分。
[0009] 進(jìn)一步地,所述方法還包括:
[0010] 在獲取用戶對需要生成數(shù)據(jù)庫腳本的地區(qū)的選擇后,根據(jù)用戶所選地區(qū)對應(yīng)的編 譯選項(xiàng)從所述數(shù)據(jù)庫腳本源文件中提取有效代碼前,還將所述數(shù)據(jù)庫腳本源文件中用戶所 選地區(qū)對應(yīng)的編譯選項(xiàng)之外的其他編譯選項(xiàng)所標(biāo)識的區(qū)別腳本部分設(shè)置為無效。
[0011] 進(jìn)一步地,所述方法還包括:
[0012] 在獲取用戶對需要生成數(shù)據(jù)庫腳本的地區(qū)的選擇后,將所述數(shù)據(jù)庫腳本源文件中 用戶所選地區(qū)對應(yīng)的編譯選項(xiàng)之外的其他編譯選項(xiàng)所標(biāo)識的區(qū)別腳本部分設(shè)置為無效前, 還獲取用戶對所選地區(qū)的數(shù)據(jù)庫服務(wù)器的選擇,用戶選擇的服務(wù)器包括測試服務(wù)器和正式 服務(wù)器;并且,
[0013] 在提取有效代碼后,確定用戶選擇的服務(wù)器的類型,如果用戶選擇的服務(wù)器為測 試服務(wù)器,則將有效代碼執(zhí)行到所述測試服務(wù)器進(jìn)行測試;如果用戶選擇的服務(wù)器為正式 服務(wù)器,則將有效代碼作為有效的數(shù)據(jù)庫腳本執(zhí)行到所述正式服務(wù)器。
[0014] 進(jìn)一步地,所述方法還包括:
[0015] 在將所述數(shù)據(jù)庫腳本源文件中用戶所選地區(qū)對應(yīng)的編譯選項(xiàng)之外的其他編譯選 項(xiàng)所標(biāo)識的區(qū)別腳本部分設(shè)置為無效后,提取有效代碼前,還接收用戶對有效代碼的修改, 在用戶完成修改后,進(jìn)行所述提取有效代碼。
[0016] 進(jìn)一步地,所述數(shù)據(jù)庫腳本源文件為多個(gè),業(yè)務(wù)的每個(gè)存儲過程分別對應(yīng)一數(shù)據(jù) 庫腳本源文件;
[0017] 所述加載數(shù)據(jù)庫腳本源文件,包括:加載用戶從多個(gè)數(shù)據(jù)庫腳本源文件中選擇的 數(shù)據(jù)庫腳本源文件。
[0018] 進(jìn)一步地,一種生成數(shù)據(jù)庫腳本的裝置,包括:加載單元、獲取單元和提取單元,其 中:
[0019] 所述加載單元,用于加載數(shù)據(jù)庫腳本源文件,所述數(shù)據(jù)庫腳本源文件中包含多個(gè) 不同地區(qū)業(yè)務(wù)的公共腳本部分和區(qū)別腳本部分,在所述數(shù)據(jù)庫腳本源文件中通過編譯選項(xiàng) 標(biāo)識所述區(qū)別腳本部分;
[0020] 所述獲取單元,用于獲取用戶對需要生成數(shù)據(jù)庫腳本的地區(qū)的選擇;
[0021] 所述提取單元,用于根據(jù)用戶所選地區(qū)對應(yīng)的編譯選項(xiàng)從所述數(shù)據(jù)庫腳本源文件 中提取有效代碼,所述有效代碼包含所述公共腳本部分以及用戶所選地區(qū)對應(yīng)的編譯選項(xiàng) 所標(biāo)識的區(qū)別腳本部分。
[0022] 進(jìn)一步地,所述裝置還包括無效設(shè)置單元,其中:
[0023] 所述無效設(shè)置單元,用于在所述獲取單元獲取用戶對需要生成數(shù)據(jù)庫腳本的地區(qū) 的選擇后,所述提取單元根據(jù)用戶所選地區(qū)對應(yīng)的編譯選項(xiàng)從所述數(shù)據(jù)庫腳本源文件中提 取有效代碼前,還將所述數(shù)據(jù)庫腳本源文件中用戶所選地區(qū)對應(yīng)的編譯選項(xiàng)之外的其他編 譯選項(xiàng)所標(biāo)識的區(qū)別腳本部分設(shè)置為無效。
[0024] 進(jìn)一步地,所述裝置還包括執(zhí)行單元,其中:
[0025] 所述獲取單元,還用于在獲取用戶對需要生成數(shù)據(jù)庫腳本的地區(qū)的選擇后,所述 無效設(shè)置單元將所述數(shù)據(jù)庫腳本源文件中用戶所選地區(qū)對應(yīng)的編譯選項(xiàng)之外的其他編譯 選項(xiàng)所標(biāo)識的區(qū)別腳本部分設(shè)置為無效前,獲取用戶對所選地區(qū)的數(shù)據(jù)庫服務(wù)器的選擇, 用戶選擇的服務(wù)器包括測試服務(wù)器和正式服務(wù)器;
[0026] 所述執(zhí)行單元,用于在所述提取單元提取有效代碼后,確定用戶選擇的服務(wù)器的 類型,如果用戶選擇的服務(wù)器為測試服務(wù)器,則將有效代碼執(zhí)行到所述測試服務(wù)器進(jìn)行測 試;如果用戶選擇的服務(wù)器為正式服務(wù)器,則將有效代碼作為有效的數(shù)據(jù)庫腳本執(zhí)行到所 述正式服務(wù)器。
[0027] 進(jìn)一步地,所述裝置還包括修改單元,其中:
[0028] 所述修改單元,用于在所述無效設(shè)置單元將所述數(shù)據(jù)庫腳本源文件中用戶所選地 區(qū)對應(yīng)的編譯選項(xiàng)之外的其他編譯選項(xiàng)所標(biāo)識的區(qū)別腳本部分設(shè)置為無效后,所述提取單 元提取有效代碼前,接收用戶對有效代碼的修改,在用戶完成修改后,通知所述提取單元提 取有效代碼。
[0029] 進(jìn)一步地,所述數(shù)據(jù)庫腳本源文件為多個(gè),業(yè)務(wù)的每個(gè)存儲過程分別對應(yīng)一數(shù)據(jù) 庫腳本源文件;
[0030] 所述加載單元加載數(shù)據(jù)庫腳本源文件,包括:加載用戶從多個(gè)數(shù)據(jù)庫腳本源文件 中選擇的數(shù)據(jù)庫腳本源文件。
[0031] 綜上所述,本發(fā)明的有益效果如下:
[0032] (1)在腳本中心平臺各地規(guī)則不同的存儲過程都對應(yīng)同一個(gè)數(shù)據(jù)庫腳本源文件, 簡化了開發(fā)人員的開發(fā)過程,并加強(qiáng)了版本管理和統(tǒng)一的規(guī)則維護(hù),而且可以清晰地區(qū)分 各個(gè)地區(qū)的規(guī)則差異;
[0033] (2)根據(jù)不同的編譯選項(xiàng)生成針對不同地區(qū)的數(shù)據(jù)庫腳本,不含任何無用代碼,最 大程度地增加了執(zhí)行效率;
[0034] (3)可直接在測試環(huán)境中測試,不影響開發(fā)效率。
【專利附圖】
【附圖說明】
[0035] 圖1為本申請的生成數(shù)據(jù)庫腳本的方法的流程圖;
[0036] 圖2為本申請的生成數(shù)據(jù)庫腳本的方法采用的操作界面的示意圖;
[0037] 圖3為本申請的生成數(shù)據(jù)庫腳本的裝置的架構(gòu)圖。
【具體實(shí)施方式】
[0038] 下文中將參考附圖并結(jié)合實(shí)施例來詳細(xì)說明本發(fā)明。需要說明的是,在不沖突的 情況下,本申請中的實(shí)施例及實(shí)施例中的特征可以相互組合。
[0039] 如圖1所示,本申請的生成數(shù)據(jù)庫腳本的方法,包括:
[0040] 步驟101 :加載數(shù)據(jù)庫腳本源文件,數(shù)據(jù)庫腳本源文件中包含多個(gè)不同地區(qū)業(yè)務(wù) 的公共腳本部分和區(qū)別腳本部分,在數(shù)據(jù)庫腳本源文件中通過編譯選項(xiàng)標(biāo)識不同地區(qū)業(yè)務(wù) 的區(qū)別腳本部分;
[0041] 例如,假設(shè)某業(yè)務(wù)部署在地區(qū)A和地區(qū)B。地區(qū)A的用戶注冊成為會員需要扣除 50RMB,地區(qū)B的用戶注冊成為會員需要扣除100RMB,除此之外其他規(guī)則均相同,這樣就可 以將地區(qū)A和地區(qū)B的存儲過程寫在一份數(shù)據(jù)庫腳本源文件中,其中,地區(qū)A和地區(qū)B的用 戶注冊腳本作為區(qū)別腳本部分,通過編譯選項(xiàng)進(jìn)行標(biāo)識,其他相同規(guī)則的腳本作為公共腳 本部分。
[0042] 由于一個(gè)業(yè)務(wù)可能存在多個(gè)存儲過程,因此,本申請中的數(shù)據(jù)庫腳本源文件可以 為多個(gè),業(yè)務(wù)的每個(gè)存儲過程分別對應(yīng)一數(shù)據(jù)庫腳本源文件。步驟101中的加載數(shù)據(jù)庫腳 本源文件,是指加載用戶從多個(gè)數(shù)據(jù)庫腳本源文件中所選擇的一數(shù)據(jù)庫腳本源文件。
[0043] 如圖2所示,為本申請的生成數(shù)據(jù)庫腳本的方法的操作界面,界面下部包含一個(gè) 樹形結(jié)構(gòu)和兩個(gè)編輯框。樹形結(jié)構(gòu)的末端節(jié)點(diǎn)為數(shù)據(jù)庫腳本源文件,圖中是多個(gè)數(shù)據(jù)庫腳 本源文件的示例,每個(gè)數(shù)據(jù)庫腳本源文件都是所有地區(qū)共用的代碼,例如,都以.sql結(jié)尾。 當(dāng)用戶雙擊樹形結(jié)構(gòu)的某個(gè)末端節(jié)點(diǎn)時(shí),則加載用戶雙擊的數(shù)據(jù)庫腳本源文件,在右邊較 大的編輯框中就會顯示出用戶所選擇的數(shù)據(jù)庫腳本源文件的代碼。本申請中還可以通過文 字顏色對數(shù)據(jù)庫腳本源文件的不同內(nèi)容加以標(biāo)識,比如關(guān)鍵字的顏色處理、注釋的顏色處 理,以及編譯選項(xiàng)的顏色處理等。
[0044] 在圖2中,存儲過程cur_test_2中的寧夏聯(lián)通和貴州聯(lián)通的處理方式不相同,在 數(shù)據(jù)庫腳本源文件cur_teSt_2. sql中包含兩個(gè)地區(qū)不同的區(qū)別腳本部分,利用編譯選項(xiàng) 加以分開,代碼如下:
[0045]
【權(quán)利要求】
1. 一種生成數(shù)據(jù)庫腳本的方法,其特征在于,包括: 加載數(shù)據(jù)庫腳本源文件,所述數(shù)據(jù)庫腳本源文件中包含多個(gè)不同地區(qū)業(yè)務(wù)的公共腳本 部分和區(qū)別腳本部分,在所述數(shù)據(jù)庫腳本源文件中通過編譯選項(xiàng)標(biāo)識所述區(qū)別腳本部分; 獲取用戶對需要生成數(shù)據(jù)庫腳本的地區(qū)的選擇,根據(jù)用戶所選地區(qū)對應(yīng)的編譯選項(xiàng)從 所述數(shù)據(jù)庫腳本源文件中提取有效代碼,所述有效代碼包含所述公共腳本部分以及用戶所 選地區(qū)對應(yīng)的編譯選項(xiàng)所標(biāo)識的區(qū)別腳本部分。
2. 如權(quán)利要求1所述的方法,其特征在于,所述方法還包括: 在獲取用戶對需要生成數(shù)據(jù)庫腳本的地區(qū)的選擇后,根據(jù)用戶所選地區(qū)對應(yīng)的編譯選 項(xiàng)從所述數(shù)據(jù)庫腳本源文件中提取有效代碼前,還將所述數(shù)據(jù)庫腳本源文件中用戶所選地 區(qū)對應(yīng)的編譯選項(xiàng)之外的其他編譯選項(xiàng)所標(biāo)識的區(qū)別腳本部分設(shè)置為無效。
3. 如權(quán)利要求2所述的方法,其特征在于,所述方法還包括: 在獲取用戶對需要生成數(shù)據(jù)庫腳本的地區(qū)的選擇后,將所述數(shù)據(jù)庫腳本源文件中用戶 所選地區(qū)對應(yīng)的編譯選項(xiàng)之外的其他編譯選項(xiàng)所標(biāo)識的區(qū)別腳本部分設(shè)置為無效前,還獲 取用戶對所選地區(qū)的數(shù)據(jù)庫服務(wù)器的選擇,用戶選擇的服務(wù)器包括測試服務(wù)器和正式服務(wù) 器;并且, 在提取有效代碼后,確定用戶選擇的服務(wù)器的類型,如果用戶選擇的服務(wù)器為測試服 務(wù)器,則將有效代碼執(zhí)行到所述測試服務(wù)器進(jìn)行測試;如果用戶選擇的服務(wù)器為正式服務(wù) 器,則將有效代碼作為有效的數(shù)據(jù)庫腳本執(zhí)行到所述正式服務(wù)器。
4. 如權(quán)利要求3所述的方法,其特征在于,所述方法還包括: 在將所述數(shù)據(jù)庫腳本源文件中用戶所選地區(qū)對應(yīng)的編譯選項(xiàng)之外的其他編譯選項(xiàng)所 標(biāo)識的區(qū)別腳本部分設(shè)置為無效后,提取有效代碼前,還接收用戶對有效代碼的修改,在用 戶完成修改后,進(jìn)行所述提取有效代碼。
5. 如權(quán)利要求1?4任意之一所述的方法,其特征在于: 所述數(shù)據(jù)庫腳本源文件為多個(gè),業(yè)務(wù)的每個(gè)存儲過程分別對應(yīng)一數(shù)據(jù)庫腳本源文件; 所述加載數(shù)據(jù)庫腳本源文件,包括:加載用戶從多個(gè)數(shù)據(jù)庫腳本源文件中選擇的數(shù)據(jù) 庫腳本源文件。
6. -種生成數(shù)據(jù)庫腳本的裝置,其特征在于,包括:加載單元、獲取單元和提取單元, 其中: 所述加載單元,用于加載數(shù)據(jù)庫腳本源文件,所述數(shù)據(jù)庫腳本源文件中包含多個(gè)不同 地區(qū)業(yè)務(wù)的公共腳本部分和區(qū)別腳本部分,在所述數(shù)據(jù)庫腳本源文件中通過編譯選項(xiàng)標(biāo)識 所述區(qū)別腳本部分; 所述獲取單元,用于獲取用戶對需要生成數(shù)據(jù)庫腳本的地區(qū)的選擇; 所述提取單元,用于根據(jù)用戶所選地區(qū)對應(yīng)的編譯選項(xiàng)從所述數(shù)據(jù)庫腳本源文件中提 取有效代碼,所述有效代碼包含所述公共腳本部分以及用戶所選地區(qū)對應(yīng)的編譯選項(xiàng)所標(biāo) 識的區(qū)別腳本部分。
7. 如權(quán)利要求6所述的裝置,其特征在于,所述裝置還包括無效設(shè)置單元,其中: 所述無效設(shè)置單元,用于在所述獲取單元獲取用戶對需要生成數(shù)據(jù)庫腳本的地區(qū)的選 擇后,所述提取單元根據(jù)用戶所選地區(qū)對應(yīng)的編譯選項(xiàng)從所述數(shù)據(jù)庫腳本源文件中提取有 效代碼前,還將所述數(shù)據(jù)庫腳本源文件中用戶所選地區(qū)對應(yīng)的編譯選項(xiàng)之外的其他編譯選 項(xiàng)所標(biāo)識的區(qū)別腳本部分設(shè)置為無效。
8. 如權(quán)利要求7所述的裝置,其特征在于,所述裝置還包括執(zhí)行單元,其中: 所述獲取單元,還用于在獲取用戶對需要生成數(shù)據(jù)庫腳本的地區(qū)的選擇后,所述無效 設(shè)置單元將所述數(shù)據(jù)庫腳本源文件中用戶所選地區(qū)對應(yīng)的編譯選項(xiàng)之外的其他編譯選項(xiàng) 所標(biāo)識的區(qū)別腳本部分設(shè)置為無效前,獲取用戶對所選地區(qū)的數(shù)據(jù)庫服務(wù)器的選擇,用戶 選擇的服務(wù)器包括測試服務(wù)器和正式服務(wù)器; 所述執(zhí)行單元,用于在所述提取單元提取有效代碼后,確定用戶選擇的服務(wù)器的類型, 如果用戶選擇的服務(wù)器為測試服務(wù)器,則將有效代碼執(zhí)行到所述測試服務(wù)器進(jìn)行測試;如 果用戶選擇的服務(wù)器為正式服務(wù)器,則將有效代碼作為有效的數(shù)據(jù)庫腳本執(zhí)行到所述正式 服務(wù)器。
9. 如權(quán)利要求8所述的裝置,其特征在于,所述裝置還包括修改單元,其中: 所述修改單元,用于在所述無效設(shè)置單元將所述數(shù)據(jù)庫腳本源文件中用戶所選地區(qū)對 應(yīng)的編譯選項(xiàng)之外的其他編譯選項(xiàng)所標(biāo)識的區(qū)別腳本部分設(shè)置為無效后,所述提取單元提 取有效代碼前,接收用戶對有效代碼的修改,在用戶完成修改后,通知所述提取單元提取有 效代碼。
10. 如權(quán)利要求6?9任意之一所述的裝置,其特征在于: 所述數(shù)據(jù)庫腳本源文件為多個(gè),業(yè)務(wù)的每個(gè)存儲過程分別對應(yīng)一數(shù)據(jù)庫腳本源文件; 所述加載單元加載數(shù)據(jù)庫腳本源文件,包括:加載用戶從多個(gè)數(shù)據(jù)庫腳本源文件中選 擇的數(shù)據(jù)庫腳本源文件。
【文檔編號】G06F17/30GK104391845SQ201410131045
【公開日】2015年3月4日 申請日期:2014年4月2日 優(yōu)先權(quán)日:2014年4月2日
【發(fā)明者】易昕, 王海, 付清文, 牟雪, 徐飛 申請人:貴陽朗瑪信息技術(shù)股份有限公司