專利名稱:應用程序與相關數(shù)據(jù)庫腳本兼容性檢測和升級維護的方法
技術領域:
本發(fā)明涉及應用程序與數(shù)據(jù)庫的檢測維護領域,具體涉及一種自動檢測應用程序與相關數(shù)據(jù)庫腳本兼容性和升級維護的方法。
背景技術:
在“客戶端-服務器”的架構(gòu)中,當應用程序被部署在多臺客戶端機器上,并且應用程序又有定期維護升級的需求時,通常面臨的一個難題就是如何維護、確保每一個客戶端機器上的應用程序與服務器端的數(shù)據(jù)庫版本保持一致。具體來說,包括以下若干問題
1)當對服務器端的數(shù)據(jù)庫腳本升級后,每一個客戶端應用如何檢測得知此信息, 以避免客戶端應用出現(xiàn)不兼容、功能不正常、甚至崩潰等情況。
2)當某客戶端安裝了一個不同版本的應用后,應用程序如何檢測其與數(shù)據(jù)庫腳本的兼容性。當不兼容時,需要判斷得知是需要對本系統(tǒng)進行升級,或是需要對服務端的數(shù)據(jù)庫腳本進行升級。
在一個不斷升級、并且廣泛部署的客戶端環(huán)境下,上述問題尤其明顯,常常會導致客戶端應用的不正常。部分應用系統(tǒng)已針對上述問題提出了相關解決方案,現(xiàn)有的解決方案通常有兩種
一種是由人工確保數(shù)據(jù)庫腳本和應用系統(tǒng)的統(tǒng)一升級過程,首先對服務器端數(shù)據(jù)庫腳本進行升級,隨后對所有客戶端應用系統(tǒng)進行升級。但是采用這種人工的方法確保數(shù)據(jù)庫腳本和應用系統(tǒng)的統(tǒng)一升級過程,其缺陷是成本高、效率低,不但要在服務器端升級腳本,而且還需要到每一臺客戶端機器上升級應用系統(tǒng)。在某些情況下此方案的可行性很低。
另一種是在服務器端的數(shù)據(jù)庫表中做一個標志,每次做數(shù)據(jù)庫結(jié)構(gòu)升級時,由升級程序或腳本對此標志進行修改。同時針對程序進行修改,在程序內(nèi)部硬編碼此標志到一個變量中。在程序檢測的時候按照如下步驟進行檢測
首先從數(shù)據(jù)庫表中讀取相關標志,將該標志和系統(tǒng)內(nèi)部標志進行比較,如果發(fā)現(xiàn)不一致則給出提示。在下一次系統(tǒng)升級時,再針對此標志進行修改,同時針對程序進行修改,按照新的標志值進行判斷檢測。這樣應用系統(tǒng)可對與數(shù)據(jù)庫腳本的兼容性進行檢測,并及時給出提示,要求客戶對系統(tǒng)進行升級。采用標志進行判斷可以部分解決此問題,但標志的選擇不明確,無法根據(jù)服務器端數(shù)據(jù)庫腳本判斷對應的應用程序所需版本,從而給出用戶足夠明確的提示信息(這一點在一個廣泛部署、不斷升級的應用環(huán)境中非常重要)。另外,此方法并未對數(shù)據(jù)庫腳本的升級維護給出明確、可行的解決方案。發(fā)明內(nèi)容
針對現(xiàn)有技術中存在的缺陷,本發(fā)明的目的在于提供一種檢測應用程序與相關數(shù)據(jù)庫腳本兼容性和升級維護的方法,能夠方便的判斷應用程序以及其相關數(shù)據(jù)庫腳本是否兼容,給出了通用的數(shù)據(jù)庫腳本的升級方法,能夠快速的判斷出需要升級的腳本,并使任意一個舊版本升級到最新版本。
為實現(xiàn)上述目的,本發(fā)明采用的技術方案如下
一種應用程序與相關數(shù)據(jù)庫腳本兼容性檢測的方法,包括以下步驟
(1)獲取應用程序的版本號維護機制,采用相同的版本號維護機制設置與應用程序相關的數(shù)據(jù)庫腳本的版本號;
(2)將應用程序所需的數(shù)據(jù)庫腳本的版本號設置在應用程序內(nèi)部;
(3)獲取待檢測應用程序內(nèi)部記錄的數(shù)據(jù)庫腳本版本號;
(4)獲取待檢測應用程序當前的數(shù)據(jù)庫腳本版本號;
(5)將待檢測應用程序內(nèi)部記錄的數(shù)據(jù)庫腳本版本號與當前的數(shù)據(jù)庫腳本版本號比較,判斷應用程序是否與當前的數(shù)據(jù)庫腳本兼容。
進一步,如上所述的一種應用程序與相關數(shù)據(jù)庫腳本兼容性檢測的方法,步驟(5) 中,所述判斷應用程序是否與當前的數(shù)據(jù)庫腳本兼容的具體方式如下
如果內(nèi)部記錄的數(shù)據(jù)庫腳本版本號大于當前數(shù)據(jù)庫腳本的版本號,則當前數(shù)據(jù)庫腳本需要升級;
如果內(nèi)部記錄的數(shù)據(jù)庫腳本版本號等于當前數(shù)據(jù)庫腳本的版本號,則應用程序與當前數(shù)據(jù)庫腳本版匹配;
如果內(nèi)部記錄的數(shù)據(jù)庫腳本版本號小于當前數(shù)據(jù)庫腳本的版本號,則應用程序需要升級到與當前數(shù)據(jù)庫腳本版本號相同的版本。
進一步,如上所述的一種應用程序與相關數(shù)據(jù)庫腳本兼容性檢測的方法,步驟(2) 中,通過硬編碼的形式將應用程序所需的數(shù)據(jù)庫腳本的版本號設置在應用程序內(nèi)部。
進一步,如上所述的一種應用程序與相關數(shù)據(jù)庫腳本兼容性檢測的方法,步驟(3) 中,應用程序當前的數(shù)據(jù)庫腳本版本號存儲在服務器端的系統(tǒng)表中。
進一步,如上所述的一種應用程序與相關數(shù)據(jù)庫腳本兼容性檢測的方法,步驟(1) 中,所述版本號維護機制采用若干位數(shù)字分隔形成版本號的維護機制,第一位版本號的數(shù)字最重要。
進一步,如上所述的一種應用程序與相關數(shù)據(jù)庫腳本兼容性檢測的方法,步驟⑴ 中,應用程序升級后,通過其版本號中的一位數(shù)字的累加標識應用程序的新版本。
再進一步,如上所述的一種應用程序與相關數(shù)據(jù)庫腳本兼容性檢測的方法,步驟 (5)中,將內(nèi)部記錄的數(shù)據(jù)庫腳本版本號與當前數(shù)據(jù)庫腳本的版本號比較時,采用從左到右的順序逐一進行比較。
更進一步,如上所述的一種應用程序與相關數(shù)據(jù)庫腳本兼容性檢測的方法,同一應用程序的若干個版本使用同一版本的數(shù)據(jù)庫腳本。
—種應用程序與相關數(shù)據(jù)庫腳本升級維護的方法,包括以下步驟
(1)獲取應用程序的版本號維護機制,采用相同的維護機制設置與應用程序相關的數(shù)據(jù)庫腳本的版本號;
(2)提取每一個數(shù)據(jù)庫腳本版本相對的上一版本,并與上一版本的數(shù)據(jù)庫腳本的版本號進行關聯(lián),形成一個升級腳本集合;
(3)獲取待檢測應用程序內(nèi)部記錄的數(shù)據(jù)庫腳本版本號和當前數(shù)據(jù)庫腳本版本號;
(4)遍歷升級腳本集合中的數(shù)據(jù)庫腳本,將獲取的數(shù)據(jù)庫腳本的版本號與待檢測應用程序內(nèi)部記錄的數(shù)據(jù)庫腳本版本號和當前的數(shù)據(jù)庫腳本版本號比較,判斷需要升級的數(shù)據(jù)庫腳本,并將該數(shù)據(jù)庫腳本升級到應用程序內(nèi)部記錄的數(shù)據(jù)庫腳本。
進一步,如上所述的一種應用程序與相關數(shù)據(jù)庫腳本升級維護的方法,步驟(3) 中,應用程序內(nèi)部記錄的數(shù)據(jù)庫腳本版本號是通過硬編碼形式將應用程序所需的數(shù)據(jù)庫腳本的版本號設置在應用程序內(nèi)部。
進一步,如上所述的一種應用程序與相關數(shù)據(jù)庫腳本升級維護的方法,步驟(4) 中,對升級腳本集合中的數(shù)據(jù)庫腳本按照版本從低到高的遍歷方式。
再進一步,如上所述的一種應用程序與相關數(shù)據(jù)庫腳本升級維護的方法,步驟(4) 中,判斷需要升級的數(shù)據(jù)庫腳本的具體方式為
如果升級腳本集合中獲取的數(shù)據(jù)庫腳本的版本號大于待檢測應用程序內(nèi)部記錄的數(shù)據(jù)庫本的版本號,則該腳本集合中的該數(shù)據(jù)庫腳本不需要升級;
如果升級腳本集合中獲取的數(shù)據(jù)庫腳本的版本號大于待檢測應用程序當前數(shù)據(jù)庫腳本版本號且小于或者等于待檢測應用程序內(nèi)部記錄的數(shù)據(jù)庫腳本版本號,則將升級腳本集合中的該數(shù)據(jù)庫腳本升級到應用程序內(nèi)部記錄的數(shù)據(jù)庫腳本;
如果升級腳本集合中獲取的數(shù)據(jù)庫腳本的版本號小于或等于待檢測應用程序當前的數(shù)據(jù)庫本的版本號,則升級腳本集合中的該數(shù)據(jù)庫腳本不需要升級;
如果升級腳本集合中獲取的數(shù)據(jù)庫腳本的版本號大于待檢測應用程序內(nèi)部記錄的數(shù)據(jù)庫腳本版本且小于待檢測應用程序當前數(shù)據(jù)庫腳本版本號,則將待檢測應用程序升級到當前數(shù)據(jù)庫腳本所對應的應用程序。
更進一步,如上所述的一種應用程序與相關數(shù)據(jù)庫腳本升級維護的方法,當遍歷的升級腳本集合中數(shù)據(jù)庫腳本的版本號大于待檢測應用層序內(nèi)部記錄的數(shù)據(jù)庫腳本版本號時,停止遍歷,升級腳本集合中的數(shù)據(jù)庫腳本的升級完成。
本發(fā)明的有益效果在于
1)可以判斷應用程序是否與服務器端數(shù)據(jù)庫腳本兼容,并針對以下兩種情況給出了明確的判斷
應用程序需要升級;
數(shù)據(jù)庫腳本需要升級;
2)根據(jù)服務器端數(shù)據(jù)庫腳本可以方便的判斷所需的應用程序版本,給出了明確的升級版本信息;
3)本發(fā)明提出了通用的版本升級方法,具有以下優(yōu)勢該方法適用性廣,可由程序按照邏輯進行實現(xiàn),減輕了人工升級的工作量,降低了出錯的可能性;實現(xiàn)從任意一個舊版本到當前最新版本的升級過程,而無論中間間隔多少個版本。
圖1為本發(fā)明應用程序與相關數(shù)據(jù)庫腳本兼容性檢測方法的流程圖2為具體實施方式
中通過版本號比較應用程序版本新舊的示意圖3為具體實施方式
中應用程序的若干個版本對應同一個數(shù)據(jù)庫腳本的示意圖4為具體實施方式
中判斷應用程序與數(shù)據(jù)庫腳本是否兼容的流程圖5為本發(fā)明應用程序與相關數(shù)據(jù)庫腳本升級維護的流程圖6為具體實施方式
中形成的升級腳本集合的示意圖7為具體實施方式
中判斷需要升級的數(shù)據(jù)庫腳本的流程圖。
具體實施方式
本發(fā)明的主要思想本發(fā)明的基本思路是使用版本號對應用程序和數(shù)據(jù)庫腳本兩部分的升級過程同時進行管理,并且采用相同的升級機制,并基于此思路實現(xiàn)對應用程序版本以及數(shù)據(jù)庫腳本兼容性問題的判別和提示,并提出了一套通用的程序與數(shù)據(jù)庫腳本升級機制。
下面結(jié)合說明書附圖與具體實施方式
對本發(fā)明做進一步的詳細說明。
圖1示出了本發(fā)明一種應用程序與相關數(shù)據(jù)庫腳本兼容性檢測方法的流程圖,由圖中可以看出,該發(fā)明主要包括以下步驟
步驟Sll 采用與應用程序相同的版本號維護機制設置數(shù)據(jù)庫腳本的版本號;
獲取應用程序的版本號維護機制,采用相同的版本號維護機制設置與應用程序相關的數(shù)據(jù)庫腳本的版本號。于應用程序的版本維護,通常都是采用若干位數(shù)字分隔形成版本號進行維護,例如,最常見的四位版本號“1. 0. 0. 0”,應用程序的每一次升級,均會對其中的某一位版本號進行累加,以標識該程序是一個新版本的應用,例如“1. 2. 3. 0”版本新于 “1. 1.8.0”版本。其中,第一位版本號的數(shù)字最為重要,從左到右其重要性依次降低(Parti、 Part2、Part3、Part4),在比較應用程序的版本時,可以按照從左至右的順序?qū)Ω魑话姹咎栔鹨贿M行比較,其流程圖如圖2所示,在比較時一旦發(fā)現(xiàn)不相同,根據(jù)該部分數(shù)值的大小即可判斷出程序版本的新舊,而不必再繼續(xù)比較。獲得應用程序的版本號的升級維護機制后, 對應用程序的相關數(shù)據(jù)庫腳本的升級也采用與應用程序相同的版本號維護機制,即采用若干位數(shù)字分隔形成版本號進行維護。這樣保證了不同數(shù)據(jù)庫腳本之間很容易進行比較,并且可以根據(jù)數(shù)據(jù)庫腳本的升級情況,靈活選擇如何變更每一部分的版本號,賦予不同部分版本號以明確的含義。
對數(shù)據(jù)庫腳本的升級采用與應用程序相同的升級維護機制后,每次數(shù)據(jù)庫腳本升級時,采用的版本號保持與應用程序版本號一致。通常,應用程序的升級快于數(shù)據(jù)庫腳本的升級,即應用程序的若干個版本可能使用同一個版本的數(shù)據(jù)庫腳本,如圖3所示,對于版本號為Versionl. 0. 0. 0、Versionl. 0. 0. 1和Versionl. 0. 0. 2的三個版本的應用程序均采用了版本號為Versionl. 0. 0. 0的數(shù)據(jù)庫腳本,這樣當版本號為Versionl. 0. 0. 2的應用程序需要升級時,才需要數(shù)據(jù)庫腳本進行升級到Versionl. 0.1.0,此時數(shù)據(jù)庫腳本將升級為與當前應用程序相同的版本。
步驟S12 在應用程序內(nèi)部設置其所需的數(shù)據(jù)庫腳本的版本號;
由于應用程序的升級一般要快于數(shù)據(jù)庫腳本的升級,所以可以在應用程序內(nèi)部維護一個所需的數(shù)據(jù)庫腳本版本號,及將應用程序所需的數(shù)據(jù)庫腳本的版本號設置在應用程序內(nèi)部,例如通過硬編碼的形式將應用程序所需的數(shù)據(jù)庫腳本的版本號設置在應用程序內(nèi)部。
步驟S13 獲取待檢測應用程序內(nèi)部的數(shù)據(jù)庫腳本版本號;
在判斷應用程序與其當前的數(shù)據(jù)庫腳本是否兼容時,根據(jù)步驟S12在應用程序內(nèi)部獲取待檢測應用程序內(nèi)部的數(shù)據(jù)庫腳本版本號,即待檢測應用程序所需要的數(shù)據(jù)庫腳本的版本號。
步驟S14 獲取待檢測應用程序當前的數(shù)據(jù)庫腳本版本號;
應用程序可以根據(jù)實際情況將其當前的數(shù)據(jù)庫腳本的版本號存儲在服務器端的系統(tǒng)表的字段中。
步驟S15 根據(jù)待檢測應用程序內(nèi)部記錄的數(shù)據(jù)庫腳本版本號和當前的數(shù)據(jù)庫腳本版本號判斷應用程序與當前的數(shù)據(jù)庫腳本是否兼容。
根據(jù)步驟S13和步驟S14分別獲取的待檢測應用程序的內(nèi)部記錄的數(shù)據(jù)庫腳本版本號和當前的數(shù)據(jù)庫腳本號來判斷應用程序與其當前的數(shù)據(jù)庫腳本是否兼容,判斷的流程圖如圖4所示,本實施方式中將內(nèi)部記錄的數(shù)據(jù)庫腳本版本號記為AppDBVer,當前的數(shù)據(jù)庫腳本版本號記為DBVer,判斷的具體方式如下
如果內(nèi)部記錄的數(shù)據(jù)庫腳本版本號大于當前數(shù)據(jù)庫腳本的版本號,即AppDBVer 大于DBVer,則說明當前的數(shù)據(jù)庫腳本低于應用程序所需的數(shù)據(jù)庫腳本,當前數(shù)據(jù)庫腳本需要升級到應用程序所需的數(shù)據(jù)庫腳本;
如果內(nèi)部記錄的數(shù)據(jù)庫腳本版本號等于當前數(shù)據(jù)庫腳本的版本號,即AppDBVer 等于DBVer,則說明應用程序與當前數(shù)據(jù)庫腳本版匹配,應也能夠程序正常啟動;
如果內(nèi)部記錄的數(shù)據(jù)庫腳本版本號小于當前數(shù)據(jù)庫腳本的版本號,即AppDBVer 小于DBVer,則說明應用程序的當前數(shù)據(jù)庫腳本高于其所需的數(shù)據(jù)庫腳本,應用程序需要升級到與當前數(shù)據(jù)庫腳本版本號相同的版本。
基于上述應用程序與相關數(shù)據(jù)庫腳本兼容性檢測方法的思路,本發(fā)明進一步提出了一種通用的數(shù)據(jù)庫腳本升級維護方法,其流程圖如圖5所示,主要包括以下步驟
步驟S51 采用與應用程序相同的版本號維護機制設置數(shù)據(jù)庫腳本的版本號;
與上述應用程序與相關數(shù)據(jù)庫腳本兼容性檢測方法的思路相同,將應用程序與其相關數(shù)據(jù)庫腳本采用相同的升級維護機制,具體如步驟Sll中所述。
步驟S52 提取每一個數(shù)據(jù)庫腳本版本相對的上一版本,并與該版本的版本號關聯(lián),形成升級腳本集合;
由于每一次數(shù)據(jù)庫腳本升級過程均可看成是上一個數(shù)據(jù)版本基礎上執(zhí)行一套升級腳本形成,因此可以將每一個數(shù)據(jù)庫腳本版本相對上一版本的升級腳本提取出來, 與數(shù)據(jù)庫腳本的版本號進行關聯(lián),形成一個升級腳本集合,如下圖6所示,數(shù)據(jù)庫腳本A 對應的版本號為Versionl. 0. 0. 0,數(shù)據(jù)庫腳本B對應的版本號為Versionl. 0. 1. 0,而數(shù)據(jù)庫腳本B是腳本A的升級腳本,所以可以將兩個腳本的版本號進行關聯(lián),即版本號為 Versionl. 0. 1. 0的數(shù)據(jù)庫腳本為版本號為Versionl. 0. 0. 0的數(shù)據(jù)庫腳本的升級腳本,該升級腳本集可以由應用程序的部署工具所攜帶。
步驟S53 獲取待檢測應用程序內(nèi)部的數(shù)據(jù)庫腳本版本號和當前的數(shù)據(jù)庫腳本版本號;
與步驟S12 步驟S14 —樣,獲取應用程序內(nèi)部記錄的所需的數(shù)據(jù)庫腳本的版本號和服務器端的系統(tǒng)表中的應用程序當前的數(shù)據(jù)庫腳本版本號。
步驟S54 遍歷升級腳本集合中的所有數(shù)據(jù)庫腳本,將獲取的版本號與待檢測應用程序內(nèi)部記錄的數(shù)據(jù)庫腳本版本號和當前的數(shù)據(jù)庫腳本版本號比較,升級腳本。
遍歷升級腳本集合中的數(shù)據(jù)庫腳本,將獲取的數(shù)據(jù)庫腳本的版本號與待檢測應用程序內(nèi)部記錄的數(shù)據(jù)庫腳本版本號和當前的數(shù)據(jù)庫腳本版本號比較,判斷需要升級的數(shù)據(jù)庫腳本,并將該數(shù)據(jù)庫腳本升級到應用程序內(nèi)部記錄的數(shù)據(jù)庫腳本。本具體實施方式
中將升級腳本集合中遍歷得到的數(shù)據(jù)庫腳本的版本號記為Ver,將應用程序內(nèi)部九路的數(shù)據(jù)庫腳本的版本號號記為AppDBVer,當前的數(shù)據(jù)庫腳本版本號記為DBVer,將升級腳本集合中的數(shù)據(jù)庫腳本采用從低到高的版本順序進行遍歷,對需要升級的數(shù)據(jù)庫腳本進行升級,具體的方式如圖7所示
如果Ver小于或等于DBVer,即獲取的數(shù)據(jù)庫腳本的版本低于應用程序當前的數(shù)據(jù)庫腳本的版本,則說明該數(shù)據(jù)庫腳本不會再被該應用程序所用,所以不需要執(zhí)行升級,繼續(xù)遍歷升級腳本集合中的下一個數(shù)據(jù)庫腳本;
如果如果Ver大于DBVer且小于或等于AppDBVer,即獲取的數(shù)據(jù)庫腳本的版本高于應用程序當前的數(shù)據(jù)庫腳本的版本,且低于應用程序所需的數(shù)據(jù)庫腳本的版本,則該數(shù)據(jù)庫腳本需要升級到應用程序所需的數(shù)據(jù)庫腳本,即升級到版本號AppDBVer所對應的數(shù)據(jù)庫腳本;
如果Ver大于AppDBVer,即獲取的數(shù)據(jù)庫腳本的版本高于應用程序所需要的數(shù)據(jù)庫腳本的版本,則該數(shù)據(jù)庫腳本也不需要升級;不過升級腳本集合中的數(shù)據(jù)庫腳本的版本號大于應用程序內(nèi)部記錄的數(shù)據(jù)庫腳本的版本號這種情況一般是不存在的,因為升級腳本是跟隨應用程序發(fā)布的,升級腳本中最高的數(shù)據(jù)庫版本號應該就是應用程序內(nèi)部記錄的所需版本號,除非升級腳本是來自另一個新版本的應用程序,或者從某個獨立渠道獲取。
由于本實施方式中對升級腳本集合中的數(shù)據(jù)腳本采用了由低到高的遍歷方式,所以當Ver大于AppDBVer時,就不需要對Ver后面的版本號進行遍歷了,因為其后的版本號肯定要高于AppDBVer,不需要升級。
顯然,本領域的技術人員可以對本發(fā)明進行各種改動和變型而不脫離本發(fā)明的精神和范圍。這樣,倘若本發(fā)明的這些修改和變型屬于本發(fā)明權(quán)利要求及其同等技術的范圍之內(nèi),則本發(fā)明也意圖包含這些改動和變型在內(nèi)。
權(quán)利要求
1.一種應用程序與相關數(shù)據(jù)庫腳本兼容性檢測的方法,包括以下步驟(1)獲取應用程序的版本號維護機制,采用相同的版本號維護機制設置與應用程序相關的數(shù)據(jù)庫腳本的版本號;(2)將應用程序所需的數(shù)據(jù)庫腳本的版本號設置在應用程序內(nèi)部;(3)獲取待檢測應用程序內(nèi)部記錄的數(shù)據(jù)庫腳本版本號;(4)獲取待檢測應用程序當前的數(shù)據(jù)庫腳本版本號;(5)將待檢測應用程序內(nèi)部記錄的數(shù)據(jù)庫腳本版本號與當前的數(shù)據(jù)庫腳本版本號比較,判斷應用程序是否與當前的數(shù)據(jù)庫腳本兼容。
2.如權(quán)利要求1所述的一種應用程序與相關數(shù)據(jù)庫腳本兼容性檢測的方法,其特征在于步驟(5)中,所述判斷應用程序是否與當前的數(shù)據(jù)庫腳本兼容的具體方式如下如果內(nèi)部記錄的數(shù)據(jù)庫腳本版本號大于當前數(shù)據(jù)庫腳本的版本號,則當前數(shù)據(jù)庫腳本需要升級;如果內(nèi)部記錄的數(shù)據(jù)庫腳本版本號等于當前數(shù)據(jù)庫腳本的版本號,則應用程序與當前數(shù)據(jù)庫腳本版匹配;如果內(nèi)部記錄的數(shù)據(jù)庫腳本版本號小于當前數(shù)據(jù)庫腳本的版本號,則應用程序需要升級到與當前數(shù)據(jù)庫腳本版本號相同的版本。
3.如權(quán)利要求1所述的一種應用程序與相關數(shù)據(jù)庫腳本兼容性檢測的方法,其特征在于步驟O)中,通過硬編碼的形式將應用程序所需的數(shù)據(jù)庫腳本的版本號設置在應用程序內(nèi)部。
4.如權(quán)利要求1所述的一種應用程序與相關數(shù)據(jù)庫腳本兼容性檢測的方法,其特征在于步驟(3)中,應用程序當前的數(shù)據(jù)庫腳本版本號存儲在服務器端的系統(tǒng)表中。
5.如權(quán)利要求1所述的一種應用程序與相關數(shù)據(jù)庫腳本兼容性檢測的方法,其特征在于步驟(1)中,所述版本號維護機制采用若干位數(shù)字分隔形成版本號的維護機制,第一位版本號的數(shù)字最重要。
6.如權(quán)利要求1或5所述的一種應用程序與相關數(shù)據(jù)庫腳本兼容性檢測的方法,其特征在于步驟(1)中,應用程序升級后,通過其版本號中的一位數(shù)字的累加標識應用程序的新版本。
7.如權(quán)利要求1或2所述的一種應用程序與相關數(shù)據(jù)庫腳本兼容性檢測的方法,其特征在于步驟(5)中,將內(nèi)部記錄的數(shù)據(jù)庫腳本版本號與當前數(shù)據(jù)庫腳本的版本號比較時, 采用從左到右的順序逐一進行比較。
8.如權(quán)利要求1所述的一種應用程序與相關數(shù)據(jù)庫腳本兼容性檢測的方法,其特征在于同一應用程序的若干個版本使用同一版本的數(shù)據(jù)庫腳本。
9.一種應用程序與相關數(shù)據(jù)庫腳本升級維護的方法,包括以下步驟(1)獲取應用程序的版本號維護機制,采用相同的維護機制設置與應用程序相關的數(shù)據(jù)庫腳本的版本號;(2)提取每一個數(shù)據(jù)庫腳本版本相對的上一版本,并與上一版本的數(shù)據(jù)庫腳本的版本號進行關聯(lián),形成一個升級腳本集合;(3)獲取待檢測應用程序內(nèi)部記錄的數(shù)據(jù)庫腳本版本號和當前數(shù)據(jù)庫腳本版本號;(4)遍歷升級腳本集合中的數(shù)據(jù)庫腳本,將獲取的數(shù)據(jù)庫腳本的版本號與待檢測應用程序內(nèi)部記錄的數(shù)據(jù)庫腳本版本號和當前的數(shù)據(jù)庫腳本版本號比較,判斷需要升級的數(shù)據(jù)庫腳本,并將該數(shù)據(jù)庫腳本升級到應用程序內(nèi)部記錄的數(shù)據(jù)庫腳本。
10.如權(quán)利要求9所述的一種應用程序與相關數(shù)據(jù)庫腳本升級維護的方法,其特征在于步驟(3)中,應用程序內(nèi)部記錄的數(shù)據(jù)庫腳本版本號是通過硬編碼形式將應用程序所需的數(shù)據(jù)庫腳本的版本號設置在應用程序內(nèi)部。
11.如權(quán)利要求9所述的一種應用程序與相關數(shù)據(jù)庫腳本升級維護的方法,其特征在于步驟中,對升級腳本集合中的數(shù)據(jù)庫腳本按照版本從低到高的遍歷方式。
12.如權(quán)利要求9或11所述的一種應用程序與相關數(shù)據(jù)庫腳本升級維護的方法,其特征在于步驟中,判斷需要升級的數(shù)據(jù)庫腳本的具體方式為如果升級腳本集合中獲取的數(shù)據(jù)庫腳本的版本號大于待檢測應用程序當前數(shù)據(jù)庫腳本版本號且小于或者等于待檢測應用程序內(nèi)部記錄的數(shù)據(jù)庫腳本版本號,則將升級腳本集合中的該數(shù)據(jù)庫腳本升級到應用程序內(nèi)部記錄的數(shù)據(jù)庫腳本;如果升級腳本集合中獲取的數(shù)據(jù)庫腳本的版本號大于待檢測應用程序內(nèi)部記錄的數(shù)據(jù)庫本的版本號,則該腳本集合中的該數(shù)據(jù)庫腳本不需要升級;如果升級腳本集合中獲取的數(shù)據(jù)庫腳本的版本號小于或等于待檢測應用程序當前的數(shù)據(jù)庫本的版本號,則升級腳本集合中的該數(shù)據(jù)庫腳本不需要升級。
13.如權(quán)利要求11所述的一種應用程序與相關數(shù)據(jù)庫腳本升級維護的方法,其特征在于當遍歷的升級腳本集合中數(shù)據(jù)庫腳本的版本號大于待檢測應用層序內(nèi)部記錄的數(shù)據(jù)庫腳本版本號時,停止遍歷,升級腳本集合中的數(shù)據(jù)庫腳本的升級完成。
全文摘要
本發(fā)明公開了一種應用程序與相關數(shù)據(jù)庫腳本兼容性檢測和升級維護的方法,涉及應用程序與數(shù)據(jù)庫的檢測維護領域。本發(fā)明將數(shù)據(jù)庫腳本的升級采用與應用程序相同的版本號維護機制,使用版本號對應用程序和數(shù)據(jù)庫腳本兩部分的升級過程進行同時管理,通過應用程序所需數(shù)據(jù)庫腳本的版本號與應用程序當前數(shù)據(jù)庫腳本的版本號的比較,判斷出需要升級的數(shù)據(jù)庫腳本或者應用程序,并給出了通用的應用程序與數(shù)據(jù)庫腳本的升級方法。通過本發(fā)明所述的方法,能夠方便的判斷出應用程序與數(shù)據(jù)庫腳本是否兼容,并在不兼容時明確給出了需要升級的應用程序或數(shù)據(jù)腳本的版本號,降低了應用程序與數(shù)據(jù)庫腳本的升級維護成本,提高了效率。
文檔編號G06F9/44GK102495733SQ20111040482
公開日2012年6月13日 申請日期2011年12月8日 優(yōu)先權(quán)日2011年12月8日
發(fā)明者余兵, 周大良, 戎濱, 李新輝, 李欣 申請人:方正國際軟件有限公司