CN111651364A - 并行开发下的sql检查方法及装置 - Google Patents

并行开发下的sql检查方法及装置 Download PDF

Info

Publication number
CN111651364A
CN111651364A CN202010618793.9A CN202010618793A CN111651364A CN 111651364 A CN111651364 A CN 111651364A CN 202010618793 A CN202010618793 A CN 202010618793A CN 111651364 A CN111651364 A CN 111651364A
Authority
CN
China
Prior art keywords
sql
script
batch
current batch
checked
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN202010618793.9A
Other languages
English (en)
Other versions
CN111651364B (zh
Inventor
胡涛
钟艳辉
樊世雄
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Bank of China Ltd
Original Assignee
Bank of China Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Bank of China Ltd filed Critical Bank of China Ltd
Priority to CN202010618793.9A priority Critical patent/CN111651364B/zh
Publication of CN111651364A publication Critical patent/CN111651364A/zh
Application granted granted Critical
Publication of CN111651364B publication Critical patent/CN111651364B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3604Software analysis for verifying properties of programs
    • G06F11/3612Software analysis for verifying properties of programs by runtime analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3664Environments for testing or debugging software
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本发明公开一种并行开发下的SQL检查方法及装置,包括:在当前批次脚本目录或当前批次追平目录有新入库SQL脚本时,获取两个目录内全部SQL脚本为待检查SQL脚本;当前批次脚本目录包括当前批次SQL脚本;当前批次追平目录包括当前批次SQL检查基线创建时间点后提交、未投产前序批次中通过检查的SQL脚本;当前批次SQL检查基线包括已投产批次SQL脚本及未投产前序批次脚本目录中通过检查的SQL脚本;以SQL检查基线为目标数据库铺底数据,检查待检查SQL脚本;若通过检查,将新入库SQL脚本更新至后序批次追平目录;若当前批次开发结束,将当前批次脚本目录所有通过检查SQL脚本更新至后序批次新建SQL检查基线。

Description

并行开发下的SQL检查方法及装置
技术领域
本发明涉及信息技术领域,尤其涉及一种并行开发下的SQL检查方法及装置。
背景技术
本部分旨在为权利要求书中陈述的本发明实施例提供背景或上下文。此处的描述不因为包括在本部分中就承认是现有技术。
软件开发项目里,软件开发者的交付物主要分为软件程序代码和各类资源定义的脚本和配置。软件开发过程中,开发和测试者会通过各种方法和工具,对待投产的程序和资源进行测试,以保证软件投产顺利和功能正确性。对大多数软件系统来说,数据库定义和变更SQL是最重要的软件资源交付物。
数据库SQL脚本的实施正确的前提,除要求脚本语法正确外,还要求该脚本实施时与目标数据库状态相符,即使相似变更大多也不能重复实施。
对于大型核心银行项目或其它大型软件项目中,由于软件开发需求量大,需求需按计划的批次分批开发投产,最终按批次顺序性投产。另由于部分需求的开发周期较长,往往不同批次存在并行开发情况。对于软件开发者,针对当前批次需求编写的数据库变更语句,在内部环境测试时,只能针对该批次的开发基线状态验证数据库变更SQL脚本的正确性。
故而,前序批次的SQL脚本变更会造成后序批次投产时数据库环境的基线的不确定性,在对后序批次的SQL脚本进行检查时,无法保证所使用的数据库环境与投产时的数据库环境状态是一致的,进而无法确定对后序批次SQL脚本检查结果的有效性。在并行开发下,各批次的SQL脚本都会因其前序批次SQL脚本的变更而无法确定其检查结果的有效性。
而无法确定各批次SQL脚本检查结果的有效性会产生潜在风险,即原本无法通过检查的SQL脚本通过了检查,导致相关SQL脚本在投产时的数据库环境状态下出现无法正常实施的问题,进而无法保证软件的正常投产及其功能的正确性。
发明内容
本发明实施例提供一种并行开发下的SQL检查方法,用以提高并行开发下各批次SQL脚本检查结果的有效性,该方法包括:
在当前批次脚本目录或当前批次追平目录有新入库SQL脚本时,获取当前批次脚本目录及当前批次追平目录内全部SQL脚本作为待检查SQL脚本;其中,所述当前批次脚本目录包括:当前批次的SQL脚本;所述当前批次追平目录包括:当前批次SQL检查基线创建时间点之后提交、未投产前序批次中通过检查的SQL脚本;所述当前批次SQL检查基线包括:已投产批次的SQL脚本以及未投产前序批次脚本目录中通过检查的SQL脚本;
以SQL检查基线为目标数据库的铺底数据,通过在目标数据库中执行待检查SQL脚本,对待检查SQL脚本进行检查;
若待检查SQL脚本通过检查,将新入库SQL脚本更新至后序批次追平目录;
若当前批次开发结束,将当前批次脚本目录中所有通过检查的SQL脚本更新至后序批次新建SQL检查基线。
本发明实施例还提供一种并行开发下的SQL检查装置,用以提高并行开发下各批次SQL脚本检查结果的有效性,该装置包括:
仓库存储模块,用于存储当前批次脚本目录、当前批次追平目录,其中,所述当前批次脚本目录包括当前批次的SQL脚本;所述当前批次追平目录,包括当前批次SQL检查基线创建时间点之后提交、未投产前序批次中通过检查的SQL脚本;所述当前批次SQL检查基线包括已投产批次的SQL脚本以及未投产前序批次脚本目录中通过检查的SQL脚本;
脚本获取模块,用于在当前批次脚本目录或当前批次追平目录有新入库SQL脚本时,获取当前批次脚本目录及当前批次追平目录内全部SQL脚本作为待检查SQL脚本;
SQL脚本检查模块,以SQL检查基线为目标数据库的铺底数据,通过在目标数据库中执行待检查SQL脚本,对待检查SQL脚本进行检查;
SQL脚本追平模块,用于在待检查SQL脚本通过检查后,将新入库SQL脚本更新至后序批次追平目录;
SQL检查基线更新模块,用于若当前批次开发结束,将当前批次脚本目录中所有通过检查的SQL脚本更新至后序批次新建SQL检查基线。
本发明实施例还提供一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述并行开发下的SQL检查方法。
本发明实施例还提供一种计算机可读存储介质,所述计算机可读存储介质存储有执行上述并行开发下的SQL检查方法的计算机程序。
本发明实施例中,待检查SQL脚本包括了全部当前批次的SQL脚本,同时还包括追平目录中,全部地当前批次SQL检查基线建立后提交的、通过检查的未投产前序批次SQL脚本;进一步地,以SQL检查基线为目标数据库的铺底数据,通过在目标数据库中执行待检查SQL脚本,对待检查SQL脚本进行检查;使得待检查SQL脚本可以在包含已投产批次的SQL脚本以及未投产前序批次脚本目录中通过检查的SQL脚本的目标数据库环境中进行检查;同时最终可以实现在同一目标数据库环境中对当前批次的SQL脚本以及全部已通过检查的未投产前序批次脚本进行检查;相较于现有技术中前序批次的脚本的变更,会影响后续脚本的变更批次投产时数据库环境的基线的不确定性,进而影响检查结果的方案;本发明通过利用SQL检查基线,在检查当前批次的SQL脚本的同时还检查追平目录中的未投产前序批次的SQL脚本,进而模拟投产时的数据库环境,确保了对SQL脚本检查的有效性性。
此外,根据当前批次的开发状态,将当前批次中通过检查的脚本分别更新至后序批次追平目录或后序批次新建SQL检查基线,也确保了在对后序批次的SQL脚本进行检查时,检查后序批次的SQL脚本的数据库环境与投产时的数据库环境状态是一致的,进而提高后序批次SQL脚本检查结果的有效性。
综上所述,通过本发明的方案可以提高并行开发下各个批次SQL脚本检查结果的有效性,使得各个批次通过检查的脚本都可以在实际投产时的数据库中环境中有效地运行,避免了在实际投产中可能出现SQL脚本无法正常实施的问题,进而保证了软件投产的顺利及其功能正确性。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。在附图中:
图1为本发明实施例中并行开发下的SQL检查方法的流程图;
图2为本发明实施例中并行开发下的SQL检查方法的一具体示例图;
图3为本发明一具体实施例中并行开发下的SQL检查方法的流程图;
图4为本发明实施例中并行开发下的SQL检查装置的结构示意图;
图5为本发明实施例中并行开发下的SQL检查装置的一具体示例图;
图6为本发明一具体实施例中并行开发下的SQL检查装置的示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚明白,下面结合附图对本发明实施例做进一步详细说明。在此,本发明的示意性实施例及其说明用于解释本发明,但并不作为对本发明的限定。
本发明实施例提供了一种并行开发下的SQL检查方法,用以提高各批次SQL脚本检查结果的有效性。图1为本发明实施例中并行开发下的SQL检查方法的流程图。如图1所示,该方法包括:
步骤101,在当前批次脚本目录或当前批次追平目录有新入库SQL脚本时,获取当前批次脚本目录及当前批次追平目录内全部SQL脚本作为待检查SQL脚本;其中,当前批次脚本目录包括:当前批次的SQL脚本;当前批次追平目录包括:当前批次SQL检查基线创建时间点之后提交、未投产前序批次中通过检查的SQL脚本;当前批次SQL检查基线包括:已投产批次的SQL脚本以及未投产前序批次脚本目录中通过检查的SQL脚本;
步骤102,以SQL检查基线为目标数据库的铺底数据,通过在目标数据库中执行待检查SQL脚本,对待检查SQL脚本进行检查;
步骤103,若待检查SQL脚本通过检查,将新入库SQL脚本更新至后序批次追平目录;
步骤104,若当前批次开发结束,将当前批次脚本目录中所有通过检查的SQL脚本更新至后序批次新建SQL检查基线。
如图1所示流程可以得知,本发明实施例中,待检查SQL脚本包括了全部当前批次的SQL脚本,同时还包括追平目录中,全部地当前批次SQL检查基线建立后提交的、通过检查的未投产前序批次SQL脚本;进一步地,以SQL检查基线为目标数据库的铺底数据,通过在目标数据库中执行待检查SQL脚本,对待检查SQL脚本进行检查;使得待检查SQL脚本可以在包含已投产批次的SQL脚本以及未投产前序批次脚本目录中通过检查的SQL脚本的目标数据库环境中进行检查;同时最终可以实现在同一目标数据库环境中对当前批次的SQL脚本以及全部已通过检查的未投产前序批次脚本进行检查;相较于现有技术中前序批次的脚本的变更,会影响后续脚本的变更批次投产时数据库环境的基线的不确定性,进而影响检查结果的方案;本发明通过利用SQL检查基线,在检查当前批次的SQL脚本的同时还检查追平目录中的未投产前序批次的SQL脚本,进而模拟投产时的数据库环境,确保了对SQL脚本检查的有效性性。
此外,根据当前批次的开发状态,将当前批次中通过检查的脚本分别更新至后序批次追平目录或后序批次新建SQL检查基线,也确保了在对后序批次的SQL脚本进行检查时,检查后序批次的SQL脚本的数据库环境与投产时的数据库环境状态是一致的,进而提高后序批次SQL脚本检查结果的有效性。
综上所述,通过本发明的方案可以提高并行开发下各个批次SQL脚本检查结果的有效性,使得各个批次通过检查的脚本都可以在实际投产时的数据库中环境中有效地运行,避免了在实际投产中可能出现SQL脚本无法正常实施的问题,进而保证了软件投产的顺利及其功能正确性。
具体实施时,在当前批次脚本目录或当前批次追平目录有新入库SQL脚本时,获取当前批次脚本目录及当前批次追平目录内全部SQL脚本作为待检查SQL脚本;其中,当前批次脚本目录包括:当前批次的SQL脚本;当前批次追平目录包括:当前批次SQL检查基线创建时间点之后提交、未投产前序批次中通过检查的SQL脚本;当前批次SQL检查基线包括:已投产批次的SQL脚本以及未投产前序批次脚本目录中通过检查的SQL脚本。
实施例中,为了判断当前批次脚本目录或当前批次追平目录是否有新入库SQL脚本,可以通过仓库钩子监控当前批次脚本目录和当前批次追平目录是否有新入库SQL脚本。通过配置仓库钩子,可以对仓库进行实时监控,保证每当有SQL脚本新入库时,可以第一时间实施检查。
现有技术中,通常在对一个批次的SQL脚本进行检查时,若一部分脚本执行成功,另一部分脚本执行失败。则一般都只会在执行失败的部分修正后仅对该部分的SQL脚本进行检查,因而容易遗漏SQL脚本之间的关联性,进而产生后续功能测试、投产环境SQL实施有误的风险。
具体实施时,在获取待检查SQL脚本之后,可以以当前批次SQL检查基线为待检查SQL脚本的目标数据库的铺底数据,通过在目标数据库中执行待检查SQL脚本,对待检查SQL脚本进行检查。
实施例中,通过在目标数据库中实施检查,有利于避免开发和测试环境的人为活动干扰,进而避免测试结果被人为操作影响。
实施例中,待检查SQL脚本包含当前目录中所有的当前批次的SQL脚本,通过对待检查SQL脚本进行检查;确保了当前批次的所有脚本在每一次更新时都可以进行测试,避免了遗漏SQL脚本之间的关联性。
图2为本发明实施例中并行开发下的SQL检查方法的一具体示例图,如图2所示:在对待检查SQL脚本进行检查前,还可以包括:
步骤201,对待检查SQL脚本的目标数据库应用资源进行清理。
实施例中,应用资源具体的可以为表资源、索引资源、序列资源、用户资源、视图资源、数据资源等。
实施例中,在每一次对待检查SQL脚本进行检查前,都对目标数据库应用资源进行清理,有利于避免因数据库SQL脚本不具备幂等性,而出现相同脚本重复执行时造成实施报错的情况,避免多次检查结果互相干扰的情况,进而保证每一次检查的独立性和可靠性。
实施例中,可以先获取待检查SQL脚本的目标数据库的地址和用户信息;根据待检查SQL脚本的目标数据库的地址和用户信息,对待检查SQL脚本的目标数据库中检查过程涉及的所有应用资源进行清理,包括通过铺底SQL和检查SQL创建或具有关联性的数据库用户、表、视图、索引、序列和数据其中之一或任意组合。实施例中对待检查SQL脚本的目标数据库中检查过程涉及的所有应用资源进行清理,并不限于通过铺底SQL和检查SQL创建或具有关联性的数据库用户、表、视图、索引、序列、数据等,还可以根据实际需求清理检查过程涉及的其它类型的应用资源。
具体实施时,若待检查SQL脚本通过检查,可以将新入库SQL脚本更新至后序批次追平目录。
具体实施时,若当前批次开发结束,可以将当前批次脚本目录中所有通过检查的SQL脚本更新至后序批次新建SQL检查基线。
下面将通过一具体实施例说明本发明所述的并行开发下的SQL检查方法。图3为本发明一具体实施例中并行开发下的SQL检查方法的流程图,如图3所示:
1、判断是否有SQL脚本入库;
2、若有,则发起检查流程;获取待检查SQL脚本,待检查脚本为当前批次脚本目录及当前批次追平目录内全部SQL脚本;
3、对目标数据库的应用资源进行清理;
4、若清理成功,则以当前批次SQL检查基线在目标数据库进行数据铺底;
若清理不成功,则在检查并修正目标数据库环境之后,重新清理目标数据库的应用资源;
5、若铺底成功,在目标数据库中执行待检查SQL脚本,对待检查SQL脚本进行检查;
若铺底不成功,则在检查并修正目标数据库环境之后,重新清理目标数据库的应用资源;
6、若新入库的SQL脚本通过检查,将新入库SQL脚本更新至后序批次追平目录;若新入库的SQL脚本未通过检查,则等待该SQL脚本修正后,重新入库以触发流程。
7、在当前批次开发技术后,将当前批次脚本目录中所有通过检查的SQL脚本更新至后序批次新建SQL检查基线(该步骤未绘示出)。
本发明实施例中还提供了一种并行开发下的SQL检查装置,如下面的实施例所述。由于该装置解决问题的原理与并行开发下的SQL检查方法相似,因此该装置的实施可以参见并行开发下的SQL检查方法的实施,重复之处不再赘述。
图4为本发明实施例中并行开发下的SQL检查装置的结构示意图,如图4所示,所述并行开发下的SQL检查装置可以包括:
仓库存储模块401,用于存储当前批次脚本目录、当前批次追平目录,其中,当前批次脚本目录包括当前批次的SQL脚本;当前批次追平目录,包括当前批次SQL检查基线创建时间点之后提交、未投产前序批次中通过检查的SQL脚本;当前批次SQL检查基线包括已投产批次的SQL脚本以及未投产前序批次脚本目录中通过检查的SQL脚本;
脚本获取模块402,用于在当前批次脚本目录或当前批次追平目录有新入库SQL脚本时,获取当前批次脚本目录及当前批次追平目录内全部SQL脚本作为待检查SQL脚本;
SQL脚本检查模块403,以SQL检查基线为目标数据库的铺底数据,通过在目标数据库中执行待检查SQL脚本,对待检查SQL脚本进行检查;
SQL脚本追平模块404,用于在待检查SQL脚本通过检查后,将新入库SQL脚本更新至后序批次追平目录;
SQL检查基线更新模块405,用于若当前批次开发结束,将当前批次脚本目录中所有通过检查的SQL脚本更新至后序批次新建SQL检查基线。
图5为本发明实施例中并行开发下的SQL检查装置的具体实例图。如图5所示,实施例中,并行开发下的SQL检查装置还可以包括:
数据库清理模块501,用于在对待检查SQL脚本进行检查前,对待检查SQL脚本的目标数据库的应用资源进行清理。
实施例中,数据清理模块501具体可以用于:
获取待检查SQL脚本的目标数据库的地址和用户信息;
根据待检查SQL脚本的目标数据库的地址和用户信息,对待检查SQL脚本的目标数据库中检查过程涉及的所有应用资源进行清理,包括通过铺底SQL和检查SQL创建或具有关联性的数据库用户、表、视图、索引、序列和数据其中之一或任意组合。实施例中对待检查SQL脚本的目标数据库中检查过程涉及的所有应用资源进行清理,并不限于通过铺底SQL和检查SQL创建或具有关联性的数据库用户、表、视图、索引、序列、数据等,还可以根据实际需求清理检查过程涉及的其它类型的应用资源。
图6为本发明一具体实施例中并行开发下的SQL检查装置的示意图,如图6所示,实施例中,并行开发下的SQL检查装置还可以包括:
监控模块601,用于在获取当前批次脚本目录及当前批次追平目录内全部SQL脚本作为待检查SQL脚本之前,通过仓库钩子监控当前批次脚本目录和当前批次追平目录是否有新入库SQL脚本。
图6中还示出了调度模块602,用于根据当前运行状态及结果调用各个模块。
具体的,通过监控模块601监控仓库存储模块401,当有新入库SQL脚本时,通过脚本获取模块402获取待检查SQL脚本;
在获取待检查SQL脚本之后,调度模块602调用数据库清理模块501对目标数据库的应用资源进行清理,并获取清理结果;
根据清理结果,若目标数据库的应用资源清理成功,由调度模块602调用SQL脚本检查模块403,以SQL检查基线为目标数据库的铺底数据,通过在目标数据库中执行待检查SQL脚本,对待检查SQL脚本进行检查,并获取检查结果;
根据检查结果,若检查通过,由调度模块602调用SQL脚本追平模块404,将新入库SQL脚本更新至后序批次追平目录;
当调度模块602识别到当前批次开发完成后,调用SQL检查基线更新模块405,将当前批次脚本目录中所有通过检查的SQL脚本更新至后序批次新建SQL检查基线。
本发明实施例还提供一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述并行开发下的SQL检查方法。
本发明实施例还提供一种计算机可读存储介质,所述计算机可读存储介质存储有执行上述并行开发下的SQL检查方法的计算机程序。
本发明实施例中,待检查SQL脚本包括了全部当前批次的SQL脚本,同时还包括追平目录中,全部地当前批次SQL检查基线建立后提交的、通过检查的未投产前序批次SQL脚本;进一步地,以SQL检查基线为目标数据库的铺底数据,通过在目标数据库中执行待检查SQL脚本,对待检查SQL脚本进行检查;使得待检查SQL脚本可以在包含已投产批次的SQL脚本以及未投产前序批次脚本目录中通过检查的SQL脚本的目标数据库环境中进行检查;同时最终可以实现在同一目标数据库环境中对当前批次的SQL脚本以及全部已通过检查的未投产前序批次脚本进行检查;相较于现有技术中前序批次的脚本的变更,会影响后续脚本的变更批次投产时数据库环境的基线的不确定性,进而影响检查结果的方案;本发明通过利用SQL检查基线,在检查当前批次的SQL脚本的同时还检查追平目录中的未投产前序批次的SQL脚本,进而模拟投产时的数据库环境,确保了对SQL脚本检查的有效性性。
此外,根据当前批次的开发状态,将当前批次中通过检查的脚本分别更新至后序批次追平目录或后序批次新建SQL检查基线,也确保了在对后序批次的SQL脚本进行检查时,检查后序批次的SQL脚本的数据库环境与投产时的数据库环境状态是一致的,进而提高后序批次SQL脚本检查结果的有效性。
综上所述,通过本发明的方案可以提高并行开发下各个批次SQL脚本检查结果的有效性,使得各个批次通过检查的脚本都可以在实际投产时的数据库中环境中有效地运行,避免了在实际投产中可能出现SQL脚本无法正常实施的问题,进而保证了软件投产的顺利及其功能正确性。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (10)

1.一种并行开发下的SQL检查方法,其特征在于,包括:
在当前批次脚本目录或当前批次追平目录有新入库SQL脚本时,获取当前批次脚本目录及当前批次追平目录内全部SQL脚本作为待检查SQL脚本;其中,所述当前批次脚本目录包括:当前批次的SQL脚本;所述当前批次追平目录包括:当前批次SQL检查基线创建时间点之后提交、未投产前序批次中通过检查的SQL脚本;所述当前批次SQL检查基线包括:已投产批次的SQL脚本以及未投产前序批次脚本目录中通过检查的SQL脚本;
以SQL检查基线为目标数据库的铺底数据,通过在目标数据库中执行待检查SQL脚本,对待检查SQL脚本进行检查;
若待检查SQL脚本通过检查,将新入库SQL脚本更新至后序批次追平目录;
若当前批次开发结束,将当前批次脚本目录中所有通过检查的SQL脚本更新至后序批次新建SQL检查基线。
2.如权利要求1所述的方法,其特征在于,在对待检查SQL脚本进行检查前,还包括:
对待检查SQL脚本的目标数据库的应用资源进行清理。
3.如权利要求2所述的方法,其特征在于,对待检查SQL脚本的目标数据库的应用资源进行清理,包括:
获取待检查SQL脚本的目标数据库的地址和用户信息;
根据待检查SQL脚本的目标数据库的地址和用户信息,对待检查SQL脚本的目标数据库中检查过程涉及的所有应用资源进行清理,包括通过铺底SQL和检查SQL创建或具有关联性的数据库用户、表、视图、索引、序列和数据其中之一或任意组合。
4.如权利要求1所述的方法,其特征在于,在获取当前批次脚本目录及当前批次追平目录内全部SQL脚本作为待检查SQL脚本之前,还包括:
通过仓库钩子监控当前批次脚本目录和当前批次追平目录是否有新入库SQL脚本。
5.一种并行开发下的SQL检查装置,其特征在于,包括:
仓库存储模块,用于存储当前批次脚本目录、当前批次追平目录,其中,所述当前批次脚本目录包括当前批次的SQL脚本;所述当前批次追平目录,包括当前批次SQL检查基线创建时间点之后提交、未投产前序批次中通过检查的SQL脚本;所述当前批次SQL检查基线包括已投产批次的SQL脚本以及未投产前序批次脚本目录中通过检查的SQL脚本;
脚本获取模块,用于在当前批次脚本目录或当前批次追平目录有新入库SQL脚本时,获取当前批次脚本目录及当前批次追平目录内全部SQL脚本作为待检查SQL脚本;
SQL脚本检查模块,以SQL检查基线为目标数据库的铺底数据,通过在目标数据库中执行待检查SQL脚本,对待检查SQL脚本进行检查;
SQL脚本追平模块,用于在待检查SQL脚本通过检查后,将新入库SQL脚本更新至后序批次追平目录;
SQL检查基线更新模块,用于若当前批次开发结束,将当前批次脚本目录中所有通过检查的SQL脚本更新至后序批次新建SQL检查基线。
6.如权利要求5所述的装置,其特征在于,还包括:
数据库清理模块,用于在对待检查SQL脚本进行检查前,对待检查SQL脚本的目标数据库应用资源进行清理。
7.如权利要求6所述的装置,其特征在于,所述数据库清理模块,具体用于:
获取待检查SQL脚本的目标数据库的地址和用户信息;
根据待检查SQL脚本的目标数据库的地址和用户信息,对待检查SQL脚本的目标数据库中检查过程涉及的所有应用资源进行清理,包括通过铺底SQL和检查SQL创建或具有关联性的数据库用户、表、视图、索引、序列和数据其中之一或任意组合。
8.如权利要求5所述的装置,其特征在于,还包括:
监控模块,用于在获取当前批次脚本目录及当前批次追平目录内全部SQL脚本作为待检查SQL脚本之前,通过仓库钩子监控当前批次脚本目录和当前批次追平目录是否有新入库SQL脚本。
9.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至4任一项所述方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有执行权利要求1至4任一项所述方法的计算机程序。
CN202010618793.9A 2020-07-01 2020-07-01 并行开发下的sql检查方法及装置 Active CN111651364B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010618793.9A CN111651364B (zh) 2020-07-01 2020-07-01 并行开发下的sql检查方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010618793.9A CN111651364B (zh) 2020-07-01 2020-07-01 并行开发下的sql检查方法及装置

Publications (2)

Publication Number Publication Date
CN111651364A true CN111651364A (zh) 2020-09-11
CN111651364B CN111651364B (zh) 2023-04-28

Family

ID=72346245

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010618793.9A Active CN111651364B (zh) 2020-07-01 2020-07-01 并行开发下的sql检查方法及装置

Country Status (1)

Country Link
CN (1) CN111651364B (zh)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103514166A (zh) * 2012-06-15 2014-01-15 阿里巴巴集团控股有限公司 Sql检查方法与装置
CN105550206A (zh) * 2015-12-01 2016-05-04 珠海多玩信息技术有限公司 结构化查询语句的版本控制方法及装置
CN105975258A (zh) * 2016-04-27 2016-09-28 中国银行股份有限公司 一种数据字典的管理方法及系统
CN107844425A (zh) * 2017-11-16 2018-03-27 中国银行股份有限公司 一种数据库语句检查方法和装置
WO2018233037A1 (zh) * 2017-06-20 2018-12-27 平安科技(深圳)有限公司 数据库集成测试方法、装置、服务器及存储介质

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103514166A (zh) * 2012-06-15 2014-01-15 阿里巴巴集团控股有限公司 Sql检查方法与装置
CN105550206A (zh) * 2015-12-01 2016-05-04 珠海多玩信息技术有限公司 结构化查询语句的版本控制方法及装置
CN105975258A (zh) * 2016-04-27 2016-09-28 中国银行股份有限公司 一种数据字典的管理方法及系统
WO2018233037A1 (zh) * 2017-06-20 2018-12-27 平安科技(深圳)有限公司 数据库集成测试方法、装置、服务器及存储介质
CN107844425A (zh) * 2017-11-16 2018-03-27 中国银行股份有限公司 一种数据库语句检查方法和装置

Also Published As

Publication number Publication date
CN111651364B (zh) 2023-04-28

Similar Documents

Publication Publication Date Title
CN110554965B (zh) 自动化模糊测试方法及相关设备、计算机可读存储介质
US8954930B2 (en) System and method for reducing test effort by object risk analysis
EP2960799A1 (en) Defect localization in software integration tests
CN109902005B (zh) 一种自动化测试的方法和系统
US10990515B2 (en) Automated unit testing in a mainframe environment
US10579513B2 (en) Test run control method and apparatus
CN110704297A (zh) 代码评审方法、装置、计算机设备及存储介质
CN112965913B (zh) 一种Java软件依赖冲突问题自动化修复的方法
US20200133823A1 (en) Identifying known defects from graph representations of error messages
CN104750601A (zh) 一种测试方法及装置
CN114756456A (zh) 一种持续集成方法、装置以及计算机可读存储介质
CN112148614A (zh) 回归测试方法及装置
US11842188B2 (en) Continuous integration and deployment pipeline selection based on dynamic mapping
CN105677394A (zh) 一种终端设备的应用程序升级方法和装置
CN113721948A (zh) 一种数据库升级方法、系统及存储介质
US20040148590A1 (en) Hierarchical test suite
US10761962B1 (en) Automated software program repair
US10642716B1 (en) Automated software program repair
CN111651364A (zh) 并行开发下的sql检查方法及装置
TWI735511B (zh) 代碼提交方法和設備
CN113656318A (zh) 软件版本测试方法、装置及计算机设备
CN112346994A (zh) 一种测试信息关联方法、装置、计算机设备及存储介质
CN113031995A (zh) 一种更新规则的方法、装置、存储介质以及电子设备
CN110928798A (zh) 一种代码测试方法、装置及设备
CN112214409B (zh) 一种用于测试环境下的运维方法及装置

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant