本申請涉及數(shù)據(jù)庫管理,尤其涉及一種數(shù)據(jù)庫自動(dòng)升級方法、系統(tǒng)、終端設(shè)備及存儲介質(zhì)。
背景技術(shù):
1、sqlite數(shù)據(jù)庫的升級過程一般為:數(shù)據(jù)庫管理員先導(dǎo)出舊數(shù)據(jù)庫中的數(shù)據(jù)到臨時(shí)文件或備份數(shù)據(jù)庫,再根據(jù)新版本數(shù)據(jù)庫的結(jié)構(gòu)修改腳本,手動(dòng)編寫sql語句來調(diào)整舊數(shù)據(jù)庫結(jié)構(gòu)或創(chuàng)建新數(shù)據(jù)庫結(jié)構(gòu);然后管理員再將導(dǎo)出的數(shù)據(jù)通過編寫的sql語句重新導(dǎo)入到新數(shù)據(jù)庫中;最后管理員手動(dòng)驗(yàn)證數(shù)據(jù)的完整性和準(zhǔn)確性。
2、目前的sqlite數(shù)據(jù)庫的升級主要依賴于手動(dòng)操作和腳本執(zhí)行;但是存在以下問題:
3、(1)過程繁瑣:整個(gè)升級過程需要數(shù)據(jù)庫管理員的高度參與,包括數(shù)據(jù)導(dǎo)出、腳本編寫、數(shù)據(jù)導(dǎo)入和驗(yàn)證等多個(gè)步驟,增加了操作的復(fù)雜性和時(shí)間成本。
4、(2)易出錯(cuò):手動(dòng)操作容易在數(shù)據(jù)導(dǎo)出、腳本編寫或數(shù)據(jù)導(dǎo)入等環(huán)節(jié)中引入錯(cuò)誤,導(dǎo)致數(shù)據(jù)丟失或不一致。
5、(3)效率低下:升級過程耗時(shí)長,且依賴于管理員的技能水平,難以保證高效的業(yè)務(wù)連續(xù)性。
6、(4)運(yùn)維成本高:需要專業(yè)的數(shù)據(jù)庫管理員進(jìn)行維護(hù),增加了企業(yè)的運(yùn)維成本。
技術(shù)實(shí)現(xiàn)思路
1、有鑒于此,本申請實(shí)施例提供一種數(shù)據(jù)庫自動(dòng)升級方法、系統(tǒng)、終端設(shè)備及存儲介質(zhì),可以有效解決sqlite數(shù)據(jù)庫的升級主要依賴于手動(dòng)操作的問題等。
2、第一方面,本申請實(shí)施例提供一種數(shù)據(jù)庫自動(dòng)升級方法,包括:
3、將源數(shù)據(jù)庫和目標(biāo)數(shù)據(jù)庫建立連接;
4、對所述源數(shù)據(jù)庫的源數(shù)據(jù)表和所述目標(biāo)數(shù)據(jù)庫的目標(biāo)數(shù)據(jù)表分別進(jìn)行識別處理,得到源表信息和目標(biāo)表信息;
5、對所述源表信息和所述目標(biāo)表信息進(jìn)行表結(jié)構(gòu)對比得到對比結(jié)果;
6、根據(jù)所述對比結(jié)果,采用遷移策略對所述源數(shù)據(jù)庫中的所述源數(shù)據(jù)表進(jìn)行遷移處理,得到所述目標(biāo)數(shù)據(jù)庫的所述目標(biāo)數(shù)據(jù)表。
7、在一些實(shí)施例中,所述源表信息包括源表名和源表結(jié)構(gòu)信息;所述目標(biāo)表信息包括目標(biāo)表名和目標(biāo)表結(jié)構(gòu)信息;所述對所述源數(shù)據(jù)庫的源數(shù)據(jù)表和所述目標(biāo)數(shù)據(jù)庫的目標(biāo)數(shù)據(jù)表分別進(jìn)行識別處理,包括:
8、通過sqlite查詢語句識別所述源表名和所述目標(biāo)表名,通過sqlite表結(jié)構(gòu)語句識別所述源表結(jié)構(gòu)信息和所述目標(biāo)表結(jié)構(gòu)信息。
9、在一些實(shí)施例中,所述對比結(jié)果包括共有列信息和列數(shù)據(jù)類型匹配信息;
10、所述共有列信息為所述源數(shù)據(jù)庫的所述源數(shù)據(jù)表和所述目標(biāo)數(shù)據(jù)庫的所述目標(biāo)數(shù)據(jù)表均存在的列信息;
11、所述列數(shù)據(jù)類型匹配信息為所述共有列的列數(shù)據(jù)類型是否相同;當(dāng)相同時(shí),識別為列數(shù)據(jù)類型匹配,當(dāng)不相同時(shí),識別為列數(shù)據(jù)類型不匹配。
12、在一些實(shí)施例中,所述遷移策略通過對規(guī)則集合進(jìn)行處理得到;所述規(guī)則集合中的多項(xiàng)遷移規(guī)則包括共有列遷移、數(shù)據(jù)類型轉(zhuǎn)換、忽略特定列和默認(rèn)值與約束;
13、所述共有列遷移用于將所述源數(shù)據(jù)庫和所述目標(biāo)數(shù)據(jù)庫的共有列納入遷移范圍;
14、所述數(shù)據(jù)類型轉(zhuǎn)換用于根據(jù)預(yù)設(shè)的數(shù)據(jù)類型轉(zhuǎn)換規(guī)則對所述源數(shù)據(jù)庫中的指定列進(jìn)行數(shù)據(jù)類型轉(zhuǎn)換;
15、所述忽略特定列用于指定需要忽略的列類型或列名列表;
16、所述默認(rèn)值與約束用于將所述源數(shù)據(jù)庫的所述默認(rèn)值和所述約束遷移到所述目標(biāo)數(shù)據(jù)庫。
17、在一些實(shí)施例中,所述遷移策略通過對規(guī)則集合進(jìn)行處理得到,包括:
18、從預(yù)設(shè)的規(guī)則集合中選擇至少兩項(xiàng)遷移規(guī)則;
19、對選擇的遷移規(guī)則進(jìn)行配置得到遷移策略。
20、在一些實(shí)施例中,所述對選擇的遷移規(guī)則進(jìn)行配置得到遷移策略,包括:
21、對選擇的遷移規(guī)則進(jìn)行定義;
22、根據(jù)業(yè)務(wù)需求和數(shù)據(jù)重要性對定義后的遷移規(guī)則進(jìn)行優(yōu)先級設(shè)置,并在優(yōu)先級排序后得到遷移策略。
23、第二方面,本申請實(shí)施例提供一種數(shù)據(jù)庫自動(dòng)升級系統(tǒng),包括連接模塊、識別模塊、對比模塊和遷移模塊;
24、所述連接模塊用于將源數(shù)據(jù)和目標(biāo)數(shù)據(jù)庫建立連接;
25、所述識別模塊用于對所述源數(shù)據(jù)庫的源數(shù)據(jù)表和所述目標(biāo)數(shù)據(jù)庫的目標(biāo)數(shù)據(jù)表分別進(jìn)行識別處理,得到源表信息和目標(biāo)表信息;
26、所述對比模塊用于對所述源表信息和所述目標(biāo)表信息進(jìn)行表結(jié)構(gòu)對比得到對比結(jié)果;
27、所述遷移模塊用于根據(jù)所述對比結(jié)果,采用遷移策略對所述源數(shù)據(jù)庫中的所述源數(shù)據(jù)表進(jìn)行遷移處理,得到所述目標(biāo)數(shù)據(jù)庫的所述目標(biāo)數(shù)據(jù)表。
28、在一些實(shí)施例中,所述遷移模塊包括選擇單元和配置單元;
29、所述選擇單元用于從規(guī)則集合中選擇至少兩項(xiàng)遷移規(guī)則;
30、所述配置單元用于對選擇的遷移規(guī)則進(jìn)行配置得到遷移策略。
31、第三方面,本申請實(shí)施例提供一種終端設(shè)備,所述終端設(shè)備包括處理器和存儲器,所述存儲器存儲有計(jì)算機(jī)程序,所述處理器用于執(zhí)行所述計(jì)算機(jī)程序以實(shí)施上述的數(shù)據(jù)庫自動(dòng)升級方法。
32、第四方面,本申請實(shí)施例提供一種計(jì)算機(jī)可讀存儲介質(zhì),其存儲有計(jì)算機(jī)程序,所述計(jì)算機(jī)程序在處理器上執(zhí)行時(shí),實(shí)施上述的數(shù)據(jù)庫自動(dòng)升級方法。
33、本申請的實(shí)施例具有如下有益效果:
34、相對于現(xiàn)有技術(shù)修改腳本,本申請的數(shù)據(jù)庫自動(dòng)升級方法通過采用遷移策略對源數(shù)據(jù)庫的數(shù)據(jù)進(jìn)行遷移處理得到目標(biāo)數(shù)據(jù)庫,該自動(dòng)化升級過程減少了人工干預(yù),降低了手動(dòng)升級過程可能出現(xiàn)的錯(cuò)誤風(fēng)險(xiǎn),從而提高數(shù)據(jù)遷移的效率和安全性。
1.一種數(shù)據(jù)庫自動(dòng)升級方法,其特征在于,包括:
2.根據(jù)權(quán)利要求1所述的數(shù)據(jù)庫自動(dòng)升級方法,其特征在于,所述源表信息包括源表名和源表結(jié)構(gòu)信息;所述目標(biāo)表信息包括目標(biāo)表名和目標(biāo)表結(jié)構(gòu)信息;所述對所述源數(shù)據(jù)庫的源數(shù)據(jù)表和所述目標(biāo)數(shù)據(jù)庫的目標(biāo)數(shù)據(jù)表分別進(jìn)行識別處理,包括:
3.根據(jù)權(quán)利要求1所述的數(shù)據(jù)庫自動(dòng)升級方法,其特征在于,所述對比結(jié)果包括共有列信息和列數(shù)據(jù)類型匹配信息;
4.根據(jù)權(quán)利要求1所述的數(shù)據(jù)庫自動(dòng)升級方法,其特征在于,所述遷移策略通過對規(guī)則集合進(jìn)行處理得到;所述規(guī)則集合中的多項(xiàng)遷移規(guī)則包括共有列遷移、數(shù)據(jù)類型轉(zhuǎn)換、忽略特定列和默認(rèn)值與約束;
5.根據(jù)權(quán)利要求4所述的數(shù)據(jù)庫自動(dòng)升級方法,其特征在于,所述遷移策略通過對規(guī)則集合進(jìn)行處理得到,包括:
6.根據(jù)權(quán)利要求4所述的數(shù)據(jù)庫自動(dòng)升級方法,其特征在于,所述對選擇的遷移規(guī)則進(jìn)行配置得到遷移策略,包括:
7.一種數(shù)據(jù)庫自動(dòng)升級系統(tǒng),其特征在于,包括連接模塊、識別模塊、對比模塊和遷移模塊;
8.根據(jù)權(quán)利要求7所述的數(shù)據(jù)庫自動(dòng)升級系統(tǒng),其特征在于,所述遷移模塊包括選擇單元和配置單元;
9.一種終端設(shè)備,其特征在于,所述終端設(shè)備包括處理器和存儲器,所述存儲器存儲有計(jì)算機(jī)程序,所述處理器用于執(zhí)行所述計(jì)算機(jī)程序以實(shí)施權(quán)利要求1-6中任一項(xiàng)所述的數(shù)據(jù)庫自動(dòng)升級方法。
10.一種計(jì)算機(jī)可讀存儲介質(zhì),其特征在于,其存儲有計(jì)算機(jī)程序,所述計(jì)算機(jī)程序在處理器上執(zhí)行時(shí),實(shí)施根據(jù)權(quán)利要求1-6中任一項(xiàng)所述的數(shù)據(jù)庫自動(dòng)升級方法。