一种数据库变更文件生成的方法和装置与流程

文档序号:15346471发布日期:2018-09-04 22:49阅读:186来源:国知局

本发明涉及计算机应用技术领域,尤其涉及一种数据库变更文件生成的方法和装置。



背景技术:

目前,整个社会处于信息化的时代,随着科技的快速发展,政府或企业等也随之呈现信息化发展趋势,从而出现了越来越多的信息化产品。为了适应应用场景,信息化产品通常需要进行优化,即,信息化产品版本更新较为频繁。在初次部署信息化产品或者信息化产品需要版本更新升级时,对应的数据库也面临初始化或者版本更新升级的问题。

现有技术中,大多数的信息化产品在初始化或版本更新升级过程中,需要研发人员人为手工编写结构化查询语言(英文:structuredquerylanguage,缩写:sql)脚本来实现数据库的初始化或者版本更新升级。

发明人经过研究发现,现有技术采用人为手工编写sql脚本的方式,过程繁琐复杂,例如,当信息化产品版本更新升级过程中变更内容较多时,编写sql脚本就会有很大的工作量,耗费人力浪费时间,降低了信息化产品研发、优化的工作效率。



技术实现要素:

本发明所要解决的技术问题是,提供一种数据库变更文件生成的方法和装置,代替人为手工编写sql脚本的技术,实现数据库初始化或者版本更新升级时脚本的自动化生成,节省人力、节约时间,从而提高了信息化产品研发、优化的工作效率。

第一方面,本发明实施例提供了一种数据库变更文件生成的方法,该方法包括:

若监控到领域建模过程中数据库模型发生变更,获取变更内容;

根据变更内容生成临时记录文件;

在所述领域建模完成后,根据所述临时记录文件生成变更文件作为目标变更文件至对应的变更目录。

优选的,若不存在数据库的历史版本信息,所述变更内容为初始化内容;若存在数据库的历史版本信息,所述变更内容为升级内容;

对应地,当所述变更内容为所述初始化内容,所述变更文件为初始化文件,所述变更目录为初始化目录;当所述变更内容为所述升级内容,所述变更文件为升级文件,所述变更目录为升级目录。

优选的,所述临时记录文件和所述变更文件的格式为xml;所述临时记录文件和所述变更文件的数据结构为模型根节点、字段子节点和索引子节点;所述模型节点包括模型类型标识,所述字段子节点包括字段类型数据。

优选的,还包括:

获取优化文件;

将所述优化文件和所述变更文件作为目标变更文件至所述变更目录,所述目标变更文件包括ddl文件和script文件,对应地,所述变更目录包括ddl目录和script目录。

优选的,所述ddl目录还包括ddl类型一级子目录,所述ddl类型一级子目录包括函数目录、java脚本目录、存储过程目录、表结构目录、触发器目录、视图目录和/或自定义目录。

优选的,所述ddl目录还包括数据库类型二级子目录,所述数据库类型二级子目录包括oracle目录和/或sqlserver目录。

优选的,所述ddl目录还包括执行顺序文件和/或所述script目录还包括预置的执行顺序文件。

优选的,还包括:

解析执行所述变更目录中的所述目标变更文件完成数据库变更。

优选的,还包括:

记录变更后数据库的当前版本信息。

第二方面,本发明实施例提供了一种数据库变更文件生成的装置,其特征在于,包括:

第一获取单元,用于若监控到领域建模过程中数据库模型发生变更,获取变更内容;

第一生成单元,用于根据变更内容生成临时记录文件;

第二生成单元,用于在所述领域建模完成后,根据所述临时记录文件生成变更文件作为目标变更文件至对应的变更目录。

与现有技术相比,本发明至少具有以下优点:

采用本发明实施例的技术方案,当监控到领域建模过程中数据库模型发生变更时,首先,获取变更内容;然后,根据变更内容自动生成临时记录文件;最后,在所述领域建模完成后,根据所述临时记录文件自动生成变更文件作为目标变更文件至对应的变更目录。由此可见,利用在领域建模过程中监控到的变更内容,自动生成变更文件至变更目录,代替人为手工编写sql脚本的技术,实现了数据库初始化或者版本更新升级时脚本的自动化生成,过程简单明了,节省人力、节约时间,从而提高了信息化产品研发、优化的工作效率。

附图说明

为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。

图1为本发明实施例中一种应用场景所涉及的系统框架示意图;

图2为本发明实施例提供的一种数据库变更文件生成的方法的流程示意图;

图3为本发明实施例提供的另一种数据库变更文件生成的方法的流程示意图;

图4为本发明实施例提供的一种数据库变更文件生成的装置的结构示意图。

具体实施方式

为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

发明人经过研究发现,随着科技的快速发展,政府或企业等推出越来越多的信息化产品,而且这些信息化产品版本更新较为频繁。在初次部署信息化产品或者信息化产品需要版本更新升级时,对应的数据库也需要进行初始化或者版本更新升级。现有技术中,一般采用研发人员人为手工编写sql脚本的方式实现数据库的初始化或者版本更新升级,该编写过程繁琐复杂,当信息化产品版本更新升级过程中变更内容较多时,编写sql脚本就会有很大的工作量,耗费人力浪费时间,降低了信息化产品研发、优化的工作效率。

为了解决这一问题,在本发明实施例中,当监控到领域建模过程中数据库模型发生变更时,首先,获取变更内容;然后,根据变更内容自动生成临时记录文件;最后,在所述领域建模完成后,根据所述临时记录文件自动生成变更文件作为目标变更文件至对应的变更目录。由此可见,利用在领域建模过程中监控到的变更内容,自动生成变更文件至变更目录,代替人为手工编写sql脚本的技术,实现了数据库初始化或者版本更新升级时脚本的自动化生成,过程简单明了,节省人力、节约时间,从而提高了信息化产品研发、优化的工作效率。

举例来说,本发明实施例的场景之一,可以是应用到如图1所示的场景应用场景中,该场景包括服务器101和数据库102。当服务器101监控到领域建模过程中数据库模型发生变更时,首先,获取变更内容;然后,服务器101根据变更内容自动生成临时记录文件;最后,在所述领域建模完成后,服务器101根据所述临时记录文件自动生成变更文件至对应的变更目录。服务器101解析执行所述变更目录中的所述变更文件完成数据库101的变更。

可以理解的是,在上述应用场景中,虽然将本发明实施方式的动作描述由处理器101执行,但是,本发明在执行主体方面不受限制,只要执行了本发明实施方式所公开的动作即可。

可以理解的是,上述场景仅是本发明实施例提供的一个场景示例,本发明实施例并不限于此场景。

下面结合附图,通过实施例来详细说明本发明实施例中数据库变更的方法和装置的具体实现方式。

示例性方法

参见图2,示出了本发明实施例中一种数据库变更文件生成的方法的流程示意图。在本实施例中,所述方法例如可以包括以下步骤:

步骤201:若监控到领域建模过程中数据库模型发生变更,获取变更内容。

需要说明的是,在监控到领域建模过程中数据库模型发生变更时,数据库变更可能是如下两种情况:第一种是数据库初始化情况,另一种是数据库版本更新升级情况。此时,可以通过查询是否存在数据库的历史版本信息,确定是数据库的变更情况,具体地,当查询得到存在数据库的历史版本信息时,则表示此时是数据库版本更新升级情况;反之,当查询得到存在数据库的历史版本信息时,则表示此时是数据库初始化情况。相应地,变更内容可以分为初始化内容和升级内容两种类型,根据数据库的变更情况可以对应确定具体地变更内容,因此,在本实施例的一些实施方式中,若不存在数据库的历史版本信息,所述变更内容为初始化内容;若存在数据库的历史版本信息,所述变更内容为升级内容;

一般地,不同的类型的变更内容应存储至对应的目录下,因此,在本实施例的一些实施方式中,当所述变更内容为所述初始化内容,所述变更文件为初始化文件,所述变更目录为初始化目录;当所述变更内容为所述升级内容,所述变更文件为升级文件,所述变更目录为升级目录。

步骤202:根据变更内容生成临时记录文件。

步骤203:在所述领域建模完成后,根据所述临时记录文件生成变更文件作为目标变更文件至对应的变更目录。

需要说明的是,一般使用xml格式的文件去记录领域建模过程中的数据,因此,在本实施例的一些实施方式中,所述临时记录文件和所述变更文件的格式为xml。当然也可以采用json、html的文件格式。为了确保临时记录文件生成变更文件后,能够被解析成可执行的语句,需要对临时记录文件和变更文件的数据结构有一些特定的要求。例如,在本实施例的一些实施方式中,所述临时记录文件和所述变更文件的数据结构为模型根节点、字段子节点和索引子节点;所述模型节点包括模型类型标识,所述字段子节点包括字段类型数据。

需要说明的是,除了将领域建模过程中将变更内容自动生成临时记录文件,再将临时记录文件自动生成变更文件之外,还可以获取优化文件,将该优化文件和变更文件共同作为目标变更文件,该优化文件包含优化数据,可以使得最终得到的目标变更文件更加精确、可靠。其中,根据后续解析执行的需要,将目标变更文件分为ddl文件和script文件,ddl文件包含初始化或者升级时需要执行的ddl语句,所述script文件包括初始化或者升级时需要执行的数据处理脚本语句。在变更目录下增加ddl目录和script目录,ddl目录用于存放ddl文件,script目录用于存放script文件。因此,在本实施例的一些实施方式中,在步骤203之后,例如还可以包括以下步骤:

步骤a:获取优化文件;

步骤b:将所述优化文件和所述变更文件作为目标变更文件至所述变更目录,所述目标变更文件包括ddl文件和script文件,对应地,所述变更目录包括ddl目录和script目录。

需要说明的是,为了便于后续的解析执行,以及考虑到后续数据库维护等问题,需要在ddl目录下增加ddl类型一级子目录,即,将ddl文件按照ddl类型进行区分,ddl类型通常包括函数、java脚本、存储过程、表结构、触发器、视图和自定义等等。因此,在本实施例中,所述ddl目录还包括ddl类型一级子目录,所述ddl类型一级子目录包括函数目录、java脚本目录、存储过程目录、表结构目录、触发器目录、视图目录和/或自定义目录。

需要说明的是,在上述ddl类型一级子目录下,还可以根据信息化产品运行系统所支持的数据库类型,新增数据库类型子目录,以便于后续解析执行完成数据库变更时,根据不同的数据源去相应目录下查找所需文件。例如,运行系统支持oracle数据库和sqlserver数据库,则需要在函数目录等目录下新增oracle目录和sqlserver目录。因此,在本实施例中,所述ddl目录还包括数据库类型二级子目录,所述数据库类型二级子目录包括oracle目录和/或sqlserver目录。

需要说明的是,ddl目录下存放的ddl文件包括多条ddl语句,还可以创建执行顺序文件用于指定这些语句的执行顺序,同理,也可以在script目录下创建执行顺序文件用于指定这些语句的执行顺序用于指定数据处理脚本语句的执行顺序。当然,没有执行顺序文件时,采用随机读取执行的方式。因此,在本实施例中,所述ddl目录还包括执行顺序文件和/或所述script目录还包括预置的执行顺序文件。例如,在ddl目录下与script下创建执行顺序文件order.ini。

需要说明的是,在步骤203生成目标变更文件之后,为了实现数据库的变更,即数据库初始化,或者数据库版本更新升级,需要进行解析执行所述目标变更文件的操作。因此,在本实施例的一些实施方式中,例如还可以包括:解析执行所述变更目录中的所述目标变更文件完成数据库变更。

还需要说明的是,在完成数据库变更之后,需要记录变更后数据库的当前版本信息,以便在监控到领域建模过程中数据库模型发生变更时,可以通过查询是否存在数据库的历史版本信息,确定是数据库是初始化还是版本更新升级。因此,在本实施例的一些实施方式中,例如还可以包括:记录变更后数据库的当前版本信息。

通过本实施例提供的各种实施方式,当监控到领域建模过程中数据库模型发生变更时,首先,获取变更内容;然后,根据变更内容自动生成临时记录文件;最后,在所述领域建模完成后,根据所述临时记录文件自动生成变更文件作为目标变更文件至对应的变更目录。由此可见,利用在领域建模过程中监控到的变更内容,自动生成变更文件至变更目录,代替人为手工编写sql脚本的技术,实现了数据库初始化或者版本更新升级时脚本的自动化生成,过程简单明了,节省人力、节约时间,从而提高了信息化产品研发、优化的工作效率。

下面结合附图3,通过又一实施例来详细说明在实际应用中,本发明实施例中数据库变更的方法的具体实现方式。

参见图3,示出了本发明实施例中另一种数据库变更文件生成的方法的流程示意图。在本实施例中,所述方法例如可以包括以下步骤:

步骤301:若监控到领域建模过程中数据库模型发生变更,获取变更内容。

步骤302:根据变更内容生成临时记录文件。

步骤303:判断是否存在数据库的历史版本信息;若否,执行步骤304;若是,执行步骤308。

步骤304:根据临时记录文件生成初始化文件。

步骤305:获取第一优化文件。

步骤306:将第一优化文件和初始化文件分为ddl文件和script文件,作为目标变更文件对应存至初始化目录下的ddl目录和script目录。

步骤307:解析执行初始化目录下ddl目录中ddl文件和script目录中script文件完成数据库初始化。

需要说明的是,在步骤307之后执行步骤312。

步骤308:根据临时记录文件生成升级文件。

步骤309:获取第二优化文件。

步骤310:将第二优化文件和升级文件分为ddl文件和script文件,作为目标变更文件对应存至升级目录下的ddl目录和script目录。

步骤311:解析执行升级目录下ddl目录中ddl文件和script目录中script文件完成数据库版本更新升级。

步骤312:记录数据库的当前版本信息。

通过本实施例提供的各种实施方式,当监控到领域建模过程中数据库模型发生变更时,首先,获取变更内容;然后,根据变更内容自动生成临时记录文件;最后,在所述领域建模完成后,根据所述临时记录文件自动生成变更文件作为目标变更文件至对应的变更目录。由此可见,利用在领域建模过程中监控到的变更内容,自动生成变更文件至变更目录,代替人为手工编写sql脚本的技术,实现了数据库初始化或者版本更新升级时脚本的自动化生成,过程简单明了,节省人力、节约时间,从而提高了信息化产品研发、优化的工作效率。

示例性设备

参见图4,示出了本发明实施例中一种数据库变更文件生成的装置的结构示意图。在本实施例中,所述装置例如具体可以包括:

第一获取单元401,用于若监控到领域建模过程中数据库模型发生变更,获取变更内容;

第一生成单元402,用于根据变更内容生成临时记录文件;

第二生成单元403,用于在所述领域建模完成后,根据所述临时记录文件生成变更文件作为目标变更文件至对应的变更目录。

可选的,若不存在数据库的历史版本信息,所述变更内容为初始化内容;若存在数据库的历史版本信息,所述变更内容为升级内容;

对应地,当所述变更内容为所述初始化内容,所述变更文件为初始化文件,所述变更目录为初始化目录;当所述变更内容为所述升级内容,所述变更文件为升级文件,所述变更目录为升级目录。

可选的,所述临时记录文件和所述变更文件的格式为xml;所述临时记录文件和所述变更文件的数据结构为模型根节点、字段子节点和索引子节点;所述模型节点包括模型类型标识,所述字段子节点包括字段类型数据。

可选的,所述装置还包括:

第二获取单元,用于获取优化文件;

获得单元,用于将所述优化文件和所述变更文件作为目标变更文件至所述变更目录,所述目标变更文件包括ddl文件和script文件,对应地,所述变更目录包括ddl目录和script目录。

可选的,所述ddl目录还包括ddl类型一级子目录,所述ddl类型一级子目录包括函数目录、java脚本目录、存储过程目录、表结构目录、触发器目录、视图目录和/或自定义目录。

可选的,所述ddl目录还包括数据库类型二级子目录,所述数据库类型二级子目录包括oracle目录和/或sqlserver目录。

可选的,所述ddl目录还包括执行顺序文件和/或所述script目录还包括预置的执行顺序文件。

可选的,所述装置还包括:

解析执行单元,用于解析执行所述变更目录中的所述目标变更文件完成数据库变更。

可选的,所述装置还包括:

记录单元,用于记录变更后数据库的当前版本信息。

通过本实施例提供的各种实施方式,数据库变更文件生成的装置包括第一获取单元、第一生成单元和第二生成单元;其中,第一获取单元用于若监控到领域建模过程中数据库模型发生变更,获取变更内容;第一生成单元用于根据变更内容生成临时记录文件;第二生成单元用于在所述领域建模完成后,根据所述临时记录文件生成变更文件作为目标变更文件至对应的变更目录。由此可见,利用在领域建模过程中监控到的变更内容,自动生成变更文件至变更目录,代替人为手工编写sql脚本的技术,实现了数据库初始化或者版本更新升级时脚本的自动化生成,过程简单明了,节省人力、节约时间,从而提高了信息化产品研发、优化的工作效率。

需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

以上所述,仅是本发明的较佳实施例而已,并非对本发明作任何形式上的限制。虽然本发明已以较佳实施例揭露如上,然而并非用以限定本发明。任何熟悉本领域的技术人员,在不脱离本发明技术方案范围情况下,都可利用上述揭示的方法和技术内容对本发明技术方案做出许多可能的变动和修饰,或修改为等同变化的等效实施例。因此,凡是未脱离本发明技术方案的内容,依据本发明的技术实质对以上实施例所做的任何简单修改、等同变化及修饰,均仍属于本发明技术方案保护的范围内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1