本公開(kāi)涉及計(jì)算機(jī)
技術(shù)領(lǐng)域:
:,具體涉及一種數(shù)據(jù)庫(kù)腳本部署裝置和數(shù)據(jù)庫(kù)腳本部署方法。
背景技術(shù):
::數(shù)據(jù)庫(kù)腳本的源代碼管理與其他語(yǔ)言無(wú)異,主要問(wèn)題在于腳本的部署。通常,部署數(shù)據(jù)庫(kù)腳本有以下3種方式:1.通過(guò)plsql工具執(zhí)行,但不支持批量腳本的執(zhí)行;2.通過(guò)oracle的客戶端sqlplus執(zhí)行,但同樣不支持批量腳本的執(zhí)行;3.手工編輯“部署腳本”文本,而后在plsql工具或sqlplus客戶端執(zhí)行該“部署腳本”。在系統(tǒng)功能簡(jiǎn)單的情況下可以采用第1種和第2種數(shù)據(jù)庫(kù)部署方式,但隨著系統(tǒng)功能特性復(fù)雜度的增加,需要部署的腳本文件逐漸增多,開(kāi)始過(guò)渡到第3種數(shù)據(jù)庫(kù)部署方式,然而,如果開(kāi)發(fā)之初即開(kāi)始編輯該“部署腳本”,開(kāi)發(fā)過(guò)程中被部署腳本有更名、廢棄等變化,則均需對(duì)該“部署腳本”進(jìn)行更新;如果開(kāi)發(fā)完畢后再開(kāi)始編輯該“部署腳本”,需要被部署腳本非常多,則有的腳本可以能會(huì)被遺漏。技術(shù)實(shí)現(xiàn)要素:本公開(kāi)的目的在于提供一種數(shù)據(jù)庫(kù)腳本部署裝置和數(shù)據(jù)庫(kù)腳本部署方法,用于至少在一定程度上克服由于相關(guān)技術(shù)的限制和缺陷而導(dǎo)致的一個(gè)或多個(gè)問(wèn)題。本公開(kāi)的其他特性和優(yōu)點(diǎn)將通過(guò)下面的詳細(xì)描述變得顯然,或部分地通過(guò)本公開(kāi)的實(shí)踐而習(xí)得。根據(jù)本公開(kāi)的第一方面,公開(kāi)了一種數(shù)據(jù)庫(kù)腳本部署裝置,包括:讀 取單元,用于讀取預(yù)存的多個(gè)數(shù)據(jù)庫(kù)腳本的信息;部署腳本生成單元,連接至所述讀取單元,用于根據(jù)預(yù)置的數(shù)據(jù)庫(kù)腳本類(lèi)別與腳本類(lèi)別登記表的對(duì)應(yīng)關(guān)系,將讀取的多個(gè)數(shù)據(jù)庫(kù)腳本信息分別記錄在對(duì)應(yīng)的腳本類(lèi)別登記表中,以及按照預(yù)定義順序?qū)⒔?jīng)過(guò)記錄的腳本類(lèi)別登記表的信息寫(xiě)入同一腳本中,以生成部署腳本;執(zhí)行單元,連接至所述部署腳本生成單元,用于對(duì)數(shù)據(jù)庫(kù)執(zhí)行所述部署腳本,以完成所述多個(gè)數(shù)據(jù)庫(kù)腳本的批量部署。在本公開(kāi)的一種示例實(shí)施方式中,所述執(zhí)行單元采用預(yù)設(shè)的第一批處理命令執(zhí)行所述部署腳本,或采用數(shù)據(jù)庫(kù)客戶端執(zhí)行所述部署腳本。在本公開(kāi)的一種示例實(shí)施方式中,所述部署腳本生成單元還用于采用數(shù)據(jù)庫(kù)語(yǔ)法分析算法對(duì)所述多個(gè)數(shù)據(jù)庫(kù)腳本進(jìn)行語(yǔ)義分析,獲取所述多個(gè)數(shù)據(jù)庫(kù)腳本之間的動(dòng)作順序信息,并根據(jù)所述動(dòng)作順序信息生成第二批處理命令,以供所述執(zhí)行單元運(yùn)行。在本公開(kāi)的一種示例實(shí)施方式中,所述部署腳本生成單元采用在操作系統(tǒng)下自動(dòng)執(zhí)行的批處理腳本完成所述部署腳本的生成過(guò)程。在本公開(kāi)的一種示例實(shí)施方式中,所述執(zhí)行單元還用于在所述部署腳本的語(yǔ)句類(lèi)型是數(shù)據(jù)庫(kù)定義語(yǔ)句或控制語(yǔ)句時(shí),將所述部署腳本和回滾腳本同時(shí)提交給所述數(shù)據(jù)庫(kù),若部署結(jié)果出現(xiàn)錯(cuò)誤,則執(zhí)行所述回滾腳本,以及在所述部署腳本的語(yǔ)句類(lèi)型是數(shù)據(jù)操作語(yǔ)句時(shí),若部署結(jié)果出現(xiàn)錯(cuò)誤,則執(zhí)行回滾命令。根據(jù)本公開(kāi)的第二方面,公開(kāi)了一種數(shù)據(jù)庫(kù)腳本部署方法,包括:讀取預(yù)存的多個(gè)數(shù)據(jù)庫(kù)腳本的信息;根據(jù)預(yù)置的數(shù)據(jù)庫(kù)腳本類(lèi)別與腳本類(lèi)別登記表的對(duì)應(yīng)關(guān)系,將讀取的多個(gè)數(shù)據(jù)庫(kù)腳本信息分別記錄在對(duì)應(yīng)的腳本類(lèi)別登記表中,以及將經(jīng)過(guò)記錄的腳本類(lèi)別登記表的信息寫(xiě)入同一腳本中,以生成部署腳本;對(duì)數(shù)據(jù)庫(kù)執(zhí)行所述部署腳本,以完成所述多個(gè)數(shù)據(jù)庫(kù)腳本的批量部署。在本公開(kāi)的一種示例實(shí)施方式中,采用預(yù)設(shè)的第一批處理命令執(zhí)行所述部署腳本,或采用數(shù)據(jù)庫(kù)客戶端執(zhí)行所述部署腳本。在本公開(kāi)的一種示例實(shí)施方式中,采用數(shù)據(jù)庫(kù)語(yǔ)法分析算法對(duì)所述多個(gè)數(shù)據(jù)庫(kù)腳本進(jìn)行語(yǔ)義分析,獲取所述多個(gè)數(shù)據(jù)庫(kù)腳本之間的動(dòng)作順序信息,并根據(jù)所述動(dòng)作順序信息生成第二批處理命令;采用所述第二批處理 命令執(zhí)行所述部署腳本。在本公開(kāi)的一種示例實(shí)施方式中,采用在操作系統(tǒng)下自動(dòng)執(zhí)行的批處理腳本完成所述部署腳本的生成過(guò)程。在本公開(kāi)的一種示例實(shí)施方式中,在所述部署腳本的語(yǔ)句類(lèi)型是數(shù)據(jù)庫(kù)定義語(yǔ)句或控制語(yǔ)句時(shí),將所述部署腳本和回滾腳本同時(shí)提交給所述數(shù)據(jù)庫(kù),若部署結(jié)果出現(xiàn)錯(cuò)誤,則執(zhí)行所述回滾腳本;以及在所述部署腳本的語(yǔ)句類(lèi)型是數(shù)據(jù)操作語(yǔ)句時(shí),若部署結(jié)果出現(xiàn)錯(cuò)誤,則執(zhí)行回滾命令。本公開(kāi)的示例實(shí)施方式所提供的數(shù)據(jù)庫(kù)腳本部署裝置和方法,可以自動(dòng)生成用于批量部署數(shù)據(jù)庫(kù)腳本的部署腳本,采用批處理命令來(lái)執(zhí)行該部署腳本,提高了部署效率,此外,還考慮到數(shù)據(jù)庫(kù)腳本之間的交叉引用,分析出數(shù)據(jù)庫(kù)腳本之間的動(dòng)作順序關(guān)系,在部署時(shí)按照該動(dòng)作順序關(guān)系來(lái)執(zhí)行,從而提高了部署準(zhǔn)確率,并且設(shè)置了“錯(cuò)誤回滾”機(jī)制,進(jìn)一步提高了數(shù)據(jù)庫(kù)腳本部署效率。附圖說(shuō)明通過(guò)參照附圖詳細(xì)描述其示例實(shí)施方式,本公開(kāi)的上述和其它特征及優(yōu)點(diǎn)將變得更加明顯。圖1是本公開(kāi)示例實(shí)施方式中一種數(shù)據(jù)庫(kù)腳本部署方法的流程圖;圖2是本公開(kāi)示例實(shí)施方式中自動(dòng)生成的部署腳本腳截圖;圖3是本公開(kāi)示例實(shí)施方式中日志文件截圖;圖4是本發(fā)明實(shí)施例中提供的一種電子設(shè)備的結(jié)構(gòu)示意圖;圖5是本發(fā)明實(shí)施例中提供的一種數(shù)據(jù)庫(kù)腳本部署裝置的結(jié)構(gòu)示意圖。具體實(shí)施方式現(xiàn)在將參考附圖更全面地描述示例實(shí)施方式。然而,示例實(shí)施方式能夠以多種形式實(shí)施,且不應(yīng)被理解為限于在此闡述的實(shí)施方式;相反,提供這些實(shí)施方式使得本公開(kāi)將全面和完整,并將示例實(shí)施方式的構(gòu)思全面地傳達(dá)給本領(lǐng)域的技術(shù)人員。在圖中,為了清晰,夸大了區(qū)域和層的厚度。在圖中相同的附圖標(biāo)記表示相同或類(lèi)似的結(jié)構(gòu),因而將省略它們的詳細(xì)描 述。此外,所描述的特征、結(jié)構(gòu)或特性可以以任何合適的方式結(jié)合在一個(gè)或更多實(shí)施例中。在下面的描述中,提供許多具體細(xì)節(jié)從而給出對(duì)本公開(kāi)的實(shí)施例的充分理解。然而,本領(lǐng)域技術(shù)人員將意識(shí)到,可以實(shí)踐本公開(kāi)的技術(shù)方案而沒(méi)有所述特定細(xì)節(jié)中的一個(gè)或更多,或者可以采用其它的方法、組元、材料等。在其它情況下,不詳細(xì)示出或描述公知結(jié)構(gòu)、材料或者操作以避免模糊本公開(kāi)的各方面。本示例實(shí)施方式中,首先提供了一種數(shù)據(jù)庫(kù)腳本部署方法。參考圖1中所示,示意出了該數(shù)據(jù)庫(kù)腳本部署方法的一種流程圖。如圖1所示,該數(shù)據(jù)庫(kù)腳本部署方法可以包括以下步驟:步驟101,讀取預(yù)存的多個(gè)數(shù)據(jù)庫(kù)腳本的信息。數(shù)據(jù)庫(kù)腳本的類(lèi)別繁多,本示例實(shí)施方式中,可以將其大致分類(lèi)如下:表:文件擴(kuò)展名為tab,tab,table,table視圖:文件擴(kuò)展名為vw,vw,view,view包頭:文件擴(kuò)展名為spec,spec,spc,spc同義詞:文件擴(kuò)展名為syn,syn對(duì)于每一數(shù)據(jù)庫(kù)腳本,可以獲取該數(shù)據(jù)庫(kù)腳本的存儲(chǔ)目錄路徑(數(shù)據(jù)庫(kù)腳本通常會(huì)按照某種固定格式存放在系統(tǒng)的某個(gè)目錄下,例如,c:\deployment\client_54)。根據(jù)數(shù)據(jù)庫(kù)腳本的存儲(chǔ)目錄路徑,讀取該目錄下的所有子目錄和一級(jí)文件信息以及各子目錄下的所有二級(jí)文件信息,直到所有文件信息讀取完畢,假設(shè)本實(shí)施例中只有第一文件和二級(jí)文件。但本領(lǐng)域技術(shù)人員容易理解的是,在具有更多級(jí)目錄級(jí)別的情形下,本示例實(shí)施方式中的數(shù)據(jù)庫(kù)腳本部署方法同樣適用。步驟102,根據(jù)預(yù)置的數(shù)據(jù)庫(kù)腳本類(lèi)別與腳本類(lèi)別登記表的對(duì)應(yīng)關(guān)系,將讀取的多個(gè)數(shù)據(jù)庫(kù)腳本信息分別記錄在對(duì)應(yīng)的腳本類(lèi)別登記表中,以及將經(jīng)過(guò)記錄的腳本類(lèi)別登記表的信息寫(xiě)入同一腳本中,以生成部署腳本。根據(jù)數(shù)據(jù)庫(kù)腳本的類(lèi)別以及可以輕松添加需要部署的數(shù)據(jù)庫(kù)腳本類(lèi)別的目的,初始化一個(gè)類(lèi)似于腳本類(lèi)別登記表的結(jié)構(gòu)(即數(shù)據(jù)庫(kù)腳本類(lèi)別與腳本類(lèi)別登記表的對(duì)應(yīng)關(guān)系),由于“可擴(kuò)展”的要求,所以其類(lèi)別可 以是動(dòng)態(tài)的,該腳本類(lèi)別登記表結(jié)構(gòu)可以參考下表所示:腳本類(lèi)別腳本登記表表表的腳本登記表視圖視圖腳本登記表同義詞同義詞腳本登記表其他其他定義了腳本類(lèi)別登記表結(jié)構(gòu)之后,生成部署腳本的過(guò)程可以如下:對(duì)于每一一級(jí)文件信息或每一二級(jí)文件信息,根據(jù)文件的擴(kuò)展名獲取對(duì)應(yīng)的腳本類(lèi)別登記表,將文件的文件名和絕對(duì)存儲(chǔ)路徑記錄在其對(duì)應(yīng)的腳本類(lèi)別登記表中。最后,按照預(yù)定義的順序,可以將前面得到的腳本類(lèi)別登記表的信息寫(xiě)入在同一腳本中,得到部署腳本。其中,所述預(yù)定義的順序例如按照“表”、“視圖”、“同義詞”的順序?qū)⒛_本類(lèi)別登記表的信息部署腳本中,該順序遵循了常規(guī)的數(shù)據(jù)庫(kù)程序的部署順序但本發(fā)明并不以此為限,其余可用于腳本部署順序的方式均在本發(fā)明創(chuàng)新思想之內(nèi)。在本實(shí)施例中,可以采用部署工具來(lái)完成部署腳本的生成過(guò)程,可以將該部署工具實(shí)現(xiàn)為在windows操作系統(tǒng)下自動(dòng)執(zhí)行的批處理腳本maker.bat,其內(nèi)容可以參考如下所示:e:\java–cp“e:\devel\ref\xml\jdom.jar;e:\devel\ref\cpastools\deployer.jar”deployer.mainmaker.bat執(zhí)行完畢后,會(huì)生成部署腳本deploy.sql,截圖內(nèi)容例如可以如圖2中所示。步驟103,對(duì)數(shù)據(jù)庫(kù)執(zhí)行生成的部署腳本,以完成多個(gè)數(shù)據(jù)庫(kù)腳本的批量部署。在步驟103中,可以采用預(yù)設(shè)的第一批處理命令執(zhí)行部署腳本,或采用oracle客戶端等數(shù)據(jù)庫(kù)客戶端執(zhí)行部署腳本。在采用批處理命令來(lái)執(zhí)行部署腳本時(shí),可以不打開(kāi)數(shù)據(jù)庫(kù),直接部署腳本,由于打開(kāi)數(shù)據(jù)庫(kù)會(huì)自動(dòng)運(yùn)行一些函數(shù),因此采用這種方式能夠進(jìn)一步提高執(zhí)行效率。另外,打開(kāi) 數(shù)據(jù)庫(kù)時(shí)可能由于誤操作而造成數(shù)據(jù)丟失或腳本丟失,因此通過(guò)批處理而不打開(kāi)數(shù)據(jù)庫(kù)的方式更為安全有效。批處理命令可以如clien_54_deploy.bat,內(nèi)容如下:sqlplusclient_54/sql@tkcpas@”deploy.sql”在數(shù)據(jù)庫(kù)腳本部署完畢后,可以通過(guò)查看日志文件獲取部署結(jié)果,確認(rèn)是否所有腳本已經(jīng)被全部正確部署完畢,該日志文件截圖內(nèi)容例如可以如圖3中所示。按照schema、授權(quán)、同義詞、表、視圖、存儲(chǔ)過(guò)程、其他類(lèi)別對(duì)象這樣的順序來(lái)執(zhí)行部署動(dòng)作,基本上可以滿足絕大部分場(chǎng)景的需要,但如果遇上復(fù)雜的功能,需要部署的數(shù)據(jù)庫(kù)腳本數(shù)量比較多,例如,涉及到待部署的數(shù)據(jù)庫(kù)腳本之間的交叉引用,則在部署過(guò)程中需要比較多的人工干預(yù)。舉例而言,文件ta1.table,其內(nèi)容例如為:altertableta1addcolumncolumn10varchar2(10);文件va1.view,其內(nèi)容例如為:createviewva1asselectcolumn1,column10fromta1。文件ta1.table的腳本是為表ta1添加一列column1,而文件va1.view的腳本是創(chuàng)建一個(gè)基于表ta1,包含column10的視圖,因此ta1.table的執(zhí)行須在va1.view之前,這就涉及到數(shù)據(jù)庫(kù)腳本之間的動(dòng)作順序信息。當(dāng)然,這是最簡(jiǎn)單的場(chǎng)景,僅作為示例,并非用于限定本示例實(shí)施方式中腳本部署方法的適用場(chǎng)景,在更復(fù)雜的場(chǎng)景下,本示例實(shí)施方式中的數(shù)據(jù)庫(kù)腳本部署方法同樣適用。在本實(shí)施例中,為了減少人工干預(yù),提供了一種示例性的解決方法:例如,可以采用sql語(yǔ)法分析算法等語(yǔ)法分析算法對(duì)需要部署的多個(gè)數(shù)據(jù)庫(kù)腳本進(jìn)行語(yǔ)義分析,獲取該多個(gè)數(shù)據(jù)庫(kù)腳本之間的動(dòng)作順序信息,并根據(jù)該動(dòng)作順序信息生成第二批處理命令;采用第二批處理命令執(zhí)行部署腳本。同樣地,為了提高效率,在此采用批處理命令來(lái)執(zhí)行部署腳本。這樣,不需要人工干預(yù)就可以按照數(shù)據(jù)庫(kù)腳本的實(shí)際動(dòng)作順序來(lái)完成數(shù)據(jù)庫(kù)腳本部署。在數(shù)據(jù)庫(kù)腳本部署中,難免會(huì)發(fā)生部署錯(cuò)誤或失敗的情形,如果通過(guò)人工進(jìn)行恢復(fù),不僅費(fèi)時(shí)費(fèi)力,而且容易導(dǎo)致進(jìn)一步的錯(cuò)誤。為了避免部署失敗后,通過(guò)人工進(jìn)行恢復(fù),本示例實(shí)施方式中還設(shè)計(jì)了錯(cuò)誤回滾機(jī)制。數(shù)據(jù)庫(kù)部署腳本可以分為3類(lèi):1.ddl即數(shù)據(jù)庫(kù)定義語(yǔ)句,如結(jié)構(gòu)的調(diào)整,視圖的建立;2.dml即數(shù)據(jù)操作語(yǔ)句,如增加數(shù)據(jù),刪除數(shù)據(jù)等;3.dcl即控制語(yǔ)句,如數(shù)據(jù)庫(kù)對(duì)象的授權(quán)等等。在部署腳本的語(yǔ)句類(lèi)型是數(shù)據(jù)庫(kù)定義語(yǔ)句或控制語(yǔ)句時(shí),將部署腳本和回滾腳本同時(shí)提交給數(shù)據(jù)庫(kù),若部署結(jié)果出現(xiàn)錯(cuò)誤,則執(zhí)行改回滾腳本(在回滾腳本中定義了回滾位置)。這樣一旦部署失敗,可以統(tǒng)一執(zhí)行回滾腳本。這里仍以執(zhí)行控制順序中ta1.table和va1.view為例,假設(shè)ta1.table和va1.view的部署為一個(gè)原子事務(wù),如果ta1.table部署成功,而va1.view部署失敗,則需要回滾ta1.table的腳本操作,即刪除掉tab1新增的column10。在部署腳本的語(yǔ)句類(lèi)型是數(shù)據(jù)操作語(yǔ)句時(shí),若部署結(jié)果出現(xiàn)錯(cuò)誤,則執(zhí)行回滾命令。通過(guò)上述方法,在部署發(fā)生異常時(shí),不需要部署人員靠閱讀部署日志來(lái)進(jìn)行排錯(cuò),通過(guò)錯(cuò)誤回滾機(jī)制,自動(dòng)排除錯(cuò)誤,不僅減少了部署人員的工作量,也提高了部署準(zhǔn)確率。需要說(shuō)明的是,盡管在附圖中以特定順序描述了本公開(kāi)中方法的各個(gè)步驟,但是,這并非要求或者暗示必須按照該特定順序來(lái)執(zhí)行這些步驟,或是必須執(zhí)行全部所示的步驟才能實(shí)現(xiàn)期望的結(jié)果。附加的或備選的,可以省略某些步驟,將多個(gè)步驟合并為一個(gè)步驟執(zhí)行,以及/或者將一個(gè)步驟分解為多個(gè)步驟執(zhí)行等。圖4示出了根據(jù)本申請(qǐng)的一示例性實(shí)施例的電子設(shè)備的示意結(jié)構(gòu)圖。請(qǐng)參考圖4,在硬件層面,該電子設(shè)備包括處理器、內(nèi)部總線、網(wǎng)絡(luò)接口、內(nèi)存以及非易失性存儲(chǔ)器,當(dāng)然還可以能包括其他業(yè)務(wù)所需要的硬件。處理器從非易失性存儲(chǔ)器中讀取對(duì)應(yīng)的計(jì)算機(jī)程序到內(nèi)存中然后運(yùn)行,在邏輯層面上形成數(shù)據(jù)庫(kù)腳本部署裝置。當(dāng)然,除了軟件實(shí)現(xiàn)方式之外,本申請(qǐng)并不排除其他實(shí)現(xiàn)方式,比如邏輯器件抑或軟硬件結(jié)合的方式等等,也就是說(shuō)以下處理流程的執(zhí)行主體并不限定于各個(gè)邏輯單元,也可以是硬件或邏輯器件。請(qǐng)參考圖5,在軟件實(shí)施方式中,當(dāng)上述電子設(shè)備采用圖5所示的處理方式時(shí),該數(shù)據(jù)庫(kù)腳本部署裝置可以包括讀取單元、部署腳本生成單元 和執(zhí)行單元。其中:讀取單元502,用于讀取預(yù)存的多個(gè)數(shù)據(jù)庫(kù)腳本的信息;部署腳本生成單元504,連接至讀取單元502,用于根據(jù)預(yù)置的數(shù)據(jù)庫(kù)腳本類(lèi)別與腳本類(lèi)別登記表的對(duì)應(yīng)關(guān)系,將讀取的多個(gè)數(shù)據(jù)庫(kù)腳本信息分別記錄在對(duì)應(yīng)的腳本類(lèi)別登記表中,以及按照預(yù)定義順序?qū)⒔?jīng)過(guò)記錄的腳本類(lèi)別登記表的信息寫(xiě)入同一腳本中,以生成部署腳本;執(zhí)行單元506,連接至部署腳本生成單元504,用于對(duì)數(shù)據(jù)庫(kù)執(zhí)行部署腳本,以完成多個(gè)數(shù)據(jù)庫(kù)腳本的批量部署。其中,執(zhí)行單元506采用預(yù)設(shè)的第一批處理命令執(zhí)行部署腳本,或采用oracle客戶端執(zhí)行部署腳本。部署腳本生成單元504采用在操作系統(tǒng)下自動(dòng)執(zhí)行的批處理腳本完成所述部署腳本的生成過(guò)程。為了解決數(shù)據(jù)庫(kù)腳本交叉引用的動(dòng)作順序部署問(wèn)題,部署腳本生成單元504還用于采用sql語(yǔ)法分析算法對(duì)所述多個(gè)數(shù)據(jù)庫(kù)腳本進(jìn)行語(yǔ)義分析,獲取所述多個(gè)數(shù)據(jù)庫(kù)腳本之間的動(dòng)作順序信息,并根據(jù)所述動(dòng)作順序信息生成第二批處理命令,以供所述執(zhí)行單元運(yùn)行。為了提高部署效率和準(zhǔn)確率,執(zhí)行單元506還用于在部署腳本的語(yǔ)句類(lèi)型是數(shù)據(jù)庫(kù)定義語(yǔ)句或控制語(yǔ)句時(shí),將部署腳本和回滾腳本同時(shí)提交給數(shù)據(jù)庫(kù),若部署結(jié)果出現(xiàn)錯(cuò)誤,則執(zhí)行回滾腳本,以及在部署腳本的語(yǔ)句類(lèi)型是數(shù)據(jù)操作語(yǔ)句時(shí),若部署結(jié)果出現(xiàn)錯(cuò)誤,則執(zhí)行回滾命令。通過(guò)本發(fā)明,可以自動(dòng)生成用于批量部署數(shù)據(jù)庫(kù)腳本的部署腳本,采用批處理命令來(lái)執(zhí)行該部署腳本,大大提高了部署效率,此外,還考慮到數(shù)據(jù)庫(kù)腳本之間的交叉引用,分析出數(shù)據(jù)庫(kù)腳本之間的動(dòng)作順序關(guān)系,在部署時(shí)按照該動(dòng)作順序關(guān)系來(lái)執(zhí)行,從而提高了部署準(zhǔn)確率,并且設(shè)置了“錯(cuò)誤回滾”機(jī)制,進(jìn)一步提高了數(shù)據(jù)庫(kù)腳本部署效率。對(duì)于裝置實(shí)施例而言,由于其基本對(duì)應(yīng)于方法實(shí)施例,所以相關(guān)之處參見(jiàn)方法實(shí)施例的部分說(shuō)明即可以。以上所描述的裝置實(shí)施例僅僅是示意性的,其中所述作為分離部件說(shuō)明的單元可以是或者也可以不是物理上分開(kāi)的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位于一個(gè)地方,或者也可以分布到多個(gè)網(wǎng)絡(luò)單元上??梢愿鶕?jù)實(shí)際的需要選擇其中的部分或者全部模塊來(lái)實(shí)現(xiàn)本發(fā)明方案的目的。本領(lǐng)域普通技術(shù)人員 在不付出創(chuàng)造性勞動(dòng)的情況下,即可以理解并實(shí)施。本公開(kāi)已由上述相關(guān)實(shí)施例加以描述,然而上述實(shí)施例僅為實(shí)施本公開(kāi)的范例。必需指出的是,已揭露的實(shí)施例并未限制本公開(kāi)的范圍。相反地,在不脫離本公開(kāi)的精神和范圍內(nèi)所作的更動(dòng)與潤(rùn)飾,均屬本公開(kāi)的專(zhuān)利保護(hù)范圍。當(dāng)前第1頁(yè)12當(dāng)前第1頁(yè)12