掌桥专利:专业的专利平台
掌桥专利
首页

数据库表结构的同步方法以及装置

文献发布时间:2024-04-18 19:58:30


数据库表结构的同步方法以及装置

技术领域

本发明实施例涉及互联网技术领域,特别涉及一种数据库表结构的同步方法。

背景技术

系统开发中,一般会设有多套环境,比如,开发环境、测试环境、业务验收环境等,每套环境对应有一个数据库。

技术人员在开发环境中执行开发任务时,开发环境的数据库表结构经常会随着开发任务的执行相应发生变化,为把开发环境变化后的数据库表结构同步到其他环境,通常需要人工整理数据库表结构的变化信息,并基于整理得到的变化信息对其他环境的数据库表结构进行更新,以实现不同环境的数据库表结构相同的目的,但人工整理变化信息的过程中,容易出现信息遗漏、整理得到的信息结构混乱等问题需要反复对变化信息进行查验,使得将不同环境的数据库表结构同步的效率较低,因此,亟需一种数据库表结构的同步方法,以提高不同环境的数据库表结构同步的效率。

发明内容

有鉴于此,本发明实施例提供了一种数据库表结构的同步方法。本发明一个或者多个实施例同时涉及一种数据库表结构的同步装置,一种计算设备,一种计算机可读存储介质以及一种计算机程序,以解决现有技术中存在的技术缺陷。

根据本发明实施例的第一方面,提供了一种数据库表结构的同步方法,包括:

获取目标数据库的更新表结构,并获取所述更新表结构对应的上一版本的目标表结构;

对比所述更新表结构和所述目标表结构,获得表差异信息;

对所述表差异信息进行校验,在校验通过的情况下,将所述表差异信息发送至待同步环境,其中,所述表差异信息用于指示在所述待同步环境中对待同步表结构进行更新。

根据本发明实施例的第二方面,提供了一种数据库表结构的同步装置,包括:

获取模块,被配置为获取目标数据库的更新表结构,并获取所述更新表结构对应的上一版本的目标表结构;

对比模块,被配置为对比所述更新表结构和所述目标表结构,获得表差异信息;

发送模块,被配置为对所述表差异信息进行校验,在校验通过的情况下,将所述表差异信息发送至待同步环境,其中,所述表差异信息用于指示在所述待同步环境中对待同步表结构进行更新。

根据本发明实施例的第三方面,提供了一种计算设备,包括:

存储器和处理器;

所述存储器用于存储计算机可执行指令,所述处理器用于执行所述计算机可执行指令,该计算机可执行指令被处理器执行时实现上述数据库表结构的同步方法的步骤。

根据本发明实施例的第四方面,提供了一种计算机可读存储介质,其存储有计算机可执行指令,该指令被处理器执行时实现上述数据库表结构的同步方法的步骤。

根据本发明实施例的第五方面,提供了一种计算机程序,其中,当所述计算机程序在计算机中执行时,令计算机执行上述数据库表结构的同步方法的步骤。

本发明一个实施例获取目标数据库的更新表结构,并获取更新表结构对应的上一版本的目标表结构;对比更新表结构和目标表结构,获得表差异信息;对表差异信息进行校验,在校验通过的情况下,将表差异信息发送至待同步环境,其中,表差异信息用于指示在待同步环境中对待同步表结构进行更新。基于获取的更新表结构,获取与更新表结构相对应的上一版本的目标表结构,通过对比两个版本的表结构,获得两个版本的表结构之间的表差异信息,并在表差异信息校验通过的情况下,将表差异信息发送到其他环境进行同步,以向其他环境同步目标数据库表结构的更新,也即在有数据库表结构更新的情况下,根据两个不同版本数据库表结构的对比,获得表差异信息,在确认了表差异信息的可用性校验通过的情况下,利用表差异信息同步更新其他环境的数据库表结构,实现自动化的对不同环境数据库表结构的更新与维护,且自动化的对表差异信息进行整理,无需为了避免人工整理出现的信息遗漏、结构混乱等问题进行反复查验,提高了不同环境数据库表结构同步的效率。

附图说明

图1是本发明一个实施例提供的一种数据库表结构的同步方法的流程图;

图2是本发明一个实施例提供的一种数据库表结构的同步方法的处理过程流程图;

图3是本发明一个实施例提供的一种数据库表结构的同步装置的结构示意图;

图4是本发明一个实施例提供的一种计算设备的结构框图。

具体实施方式

在下面的描述中阐述了很多具体细节以便于充分理解本发明。但是本发明能够以很多不同于在此描述的其它方式来实施,本领域技术人员可以在不违背本发明内涵的情况下做类似推广,因此本发明不受下面公开的具体实施的限制。

在本发明一个或多个实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本发明一个或多个实施例。在本发明一个或多个实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本发明一个或多个实施例中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。

应当理解,尽管在本发明一个或多个实施例中可能采用术语第一、第二等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本发明一个或多个实施例范围的情况下,第一也可以被称为第二,类似地,第二也可以被称为第一。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。

此外,需要说明的是,本发明一个或多个实施例所涉及的用户信息(包括但不限于用户设备信息、用户个人信息等)和数据(包括但不限于用于分析的数据、存储的数据、展示的数据等),均为经用户授权或者经过各方充分授权的信息和数据,并且相关数据的收集、使用和处理需要遵守相关国家和地区的相关法律法规和标准,并提供有相应的操作入口,供用户选择授权或者拒绝。

首先,对本发明一个或多个实施例涉及的名词术语进行解释。

数据库:是“按照数据结构来组织、存储和管理数据的仓库”,是一个长期存储在计算机内的、有组织的、可共享的、统一管理的大量数据的集合。

数据库模式定义语言(DDL,Data Defin it ion Language):是用于描述数据库中要存储的现实世界实体的语言。

数据库表:是包含数据库中所有数据的数据库对象。

索引:在关系数据库中,索引是一种单独的、物理的对数据库表中一列或多列的值进行排序的一种存储结构,它是某个表中一列或若干列值的集合和相应的指向表中物理标识这些值的数据页的逻辑指针清单。索引的作用相当于图书的目录,可以根据目录中的页码快速找到所需的内容。

系统开发中,一般会设有多套环境,比如,开发环境、测试环境、业务验收环境等,每套环境对应有一个数据库。

技术人员在开发环境中执行开发任务时,开发环境的数据库表结构经常会随着开发任务的执行相应发生变化,为把开发环境变化后的数据库表结构同步到其他环境,通常需要人工整理数据库表结构的变化信息,并基于整理得到的变化信息对其他环境的数据库表结构进行更新,以实现不同环境的数据库表结构相同的目的,但人工整理变化信息的过程中,容易出现信息遗漏、整理得到的信息结构混乱等问题需要反复对变化信息进行查验,使得将不同环境的数据库表结构同步的效率较低,因此,亟需一种数据库表结构的同步方法,以提高不同环境的数据库表结构同步的效率。

为解决上述技术问题,本发明提供了一种数据库表结构的同步方法,在有数据库表结构更新的情况下,根据两个不同版本数据库表结构的对比,获得表差异信息,在确认了表差异信息的可用性校验通过的情况下,利用表差异信息同步更新其他环境的数据库表结构,实现自动化的对不同环境数据库表结构的更新与维护,且自动化的对表差异信息进行整理,无需为了避免人工整理出现的信息遗漏、结构混乱等问题进行反复查验,提高了不同环境数据库表结构同步的效率。

具体地,在本发明中,提供了一种数据库表结构的同步方法,本发明同时涉及一种数据库表结构的同步装置,一种计算设备,以及一种计算机可读存储介质,在下面的实施例中逐一进行详细说明。

参见图1,图1示出了根据本发明一个实施例提供的一种数据库表结构的同步方法的流程图,具体包括以下步骤。

步骤102:获取目标数据库的更新表结构,并获取更新表结构对应的上一版本的目标表结构。

本发明实施例中提供的数据库表结构的同步方法一般由服务端执行,但是,在本发明的其他实施例中,客户端也可以与服务端具有相似的功能,从而执行本发明所提供的数据库表结构的同步方法。在其它实施例中,本发明实施例所提供的数据库表结构的同步方法还可以是由客户端与服务端共同执行。实际应用中,客户端和/或服务端中包括具有数据库表结构的同步功能的应用,下述以服务端执行本发明提供的信息展示方法为例进行说明。

在有数据库表结构的同步需求时,服务端会获取到目标数据库的更新表结构,服务端基于获取到的更新表结构,获取更新表结构对应的上一版本的目标表结构。

具体地,目标数据库是指指定环境对应的数据库,指定环境与后文中的目标环境为不同的环境,比如,指定环境为开发环境,则目标数据库可以是开发环境的数据库,开发环境是专门用于开发的服务器,配置可以比较随意,为了开发调试方便,一般打开全部错误报告和测试工具,是较为基础的环境。更新表结构是指更新版本的表结构,表结构是指数据库表对应的范式,表结构包括表的尺寸、表数据的属性信息,比如尺寸可以是表的行数和列数,属性信息可以是表中各表格对应的数据属性,数据属性可以是数据的表示形式为int8、int16等。目标表结构是指与更新表结构对应的上一版本的表结构,比如,对目标表结构进行更新,获得更新表结构。

示例性地,服务端包括表结构同步系统,表结构同步系统用于在开发环境的表结构更新的情况下,将更新表结构的结构信息同步至其他环境的数据库中,具体是获取开发环境中数据库的更新表结构,获取开发环境中更新表结构对应上一版本的开发环境中的目标数据库。

可选地,数据库类型可以是关系型数据库和非关系型数据库等。

可选地,数据库对应有数据库模型对象,数据库模型对象中包括模型编号、模型名称、版本号、模型绑定的数据库类型、默认存储引擎、默认字符集和是否有效等信息;数据库模型中包括的数据表包括表对象、表字段对象和表索引对象;表对象包括表编号、模型编号、表名、版本号、建表DDL语句、发布状态、是否有效;表字段对象包括表字段编号、表编号、表版本号、模型编号、字段名、字段类型、字段长度、字段注释、是否可空、默认值、是否主键、是否自增、是否有效;表索引对象包括索引编号、表编号、表版本号、模型编号、索引类型、索引名称、索引字段列表、是否有效。

获取目标数据库的更新表结构的实现方式有很多种,具体根据实际情况进行确定,本发明在此不作限定。

本发明第一种可能的实现方式中,上述步骤获取目标数据库的更新表结构,包括如下步骤:

接收表结构更新指令,获得候选表结构,并存储候选表结构的结构属性信息和建表信息;

接收表结构发布指令,将表结构发布指令指示发布的候选表结构作为更新表结构。

具体地,表结构更新指令指示服务端对表结构进行修改更新。候选表结构是指更新过的表结构,候选表结构基于表结构更新指令的不同而不同,比如,用户有多个更新操作,若表结构更新指令包括有该多个更新操作,则候选表结构为最终更新的表结构,若表结构更新指令为多个更新操作中的任一个,则候选表结构为更新过程中的表结构。结构属性信息表征候选表结构中表的结构信息,是从候选表结构中提取得到,结构属性可以包括表结构的尺寸、表格中的数据属性等。建表信息是指候选表结构对应的执行信息,建表信息的表示形式可以为数据库模式定义语言,在任一数据库中执行该建表信息可获得候选表结构。表结构发布指令指示服务端对候选表结构进行发布。

示例性地,表结构更新指令可以是针对数据库模型对象、表对象、表字段对象和表索引对象中的任意一种或多种的指令,比如,表结构更新指令可以是某一列删除、增加一列、改变某一列或者某一行的属性等。

接收表结构更新指令,获得候选表结构是实现方式,可以是对表结构更新指令进行解析,基于解析结果获得候选表结构。

接收表结构更新指令的实现方式,可以是接收用户在前端对初始表结构的更新操作,生成表结构更新指令,初始表结构可以是空的表结构,也可以是用户选定的用于更新的表结构。

存储候选表结构的结构属性信息和建表信息的实现方式,可以是将候选表结构的结构属性信息和建表信息存储至对应的预设位置处。

示例性地,接收用户通过前端针对候选表结构所做出的发布操作,该发布操作即为表结构发布指令,基于该发布操作,发布候选表结构,获得更新表结构。

可选地,发布候选表结构,并将该候选表结构确定为更新表结构,为更新表结构赋予版本标识,以用于在表结构的表示上与更新表结构与其他表结构进行区分。

应用本发明实施例的方案,接收表结构更新指令,获得候选表结构,并存储候选表结构的结构属性和建表信息,接收表结构发布指令,将表结构发布指令指示发布的候选表结构作为更新表结构,使得服务端可以监控到表结构更新并生成更新表结构的过程,实现了表结构进行更新的可追溯性。

本发明第二种可能的实现方式中,用户在前端生成更新表结构之后,将更新表结构进行上传,比如,用户通过前端创建目标数据库对应的新的表结构,通过控件将创建的表结构发布,服务端即可获取到更新表结构;用户通过前端对原始版本的表结构进行更新/调整,生成更新表结构,通过控件将创建的表结构发布,服务端即可获取到更新表结构。

本发明第三种可能的实现方式中,可以是用户预先创建/更新了表结构生成更新表结构,并将更新表结构存储于指定位置,用户有数据库表结构同步的需求时,发起表结构同步请求,并在表结构同步请求中携带有更新表结构的存储位置,服务端从该存储位置处获取对应的更新表结构即可。

在获取目标数据库的更新表结构的基础上,获取更新表结构对应的上一版本的目标表结构,使得后续可以自动化的比对更新表结构和目标表结构,并基于比对结果同步其他环境的表结构。

本发明一种可选的实施例中,上述步骤获取更新表结构对应的上一版本的目标表结构,包括如下步骤:

识别更新表结构的目标版本标识,并在目标数据库查询目标版本标识的上一版本标识;

获取上一版本标识对应的目标表结构。

具体地,版本标识是指用于对应表结构的标识,用于索引和识别表结构的标识,版本标识中可以包括版本号和/或发布时间。目标版本标识是指指定表结构的版本标识,在本发明实施例中,目标版本标识为更新表结构的版本标识。

识别更新表结构的目标版本标识的实现方式,可以是基于更新表结构,在存储版本标识的数据库获取更新表结构的目标版本标识;还可以是从更新表结构携带的信息中获得目标版本标识。

在目标数据库查询目标版本标识的上一版本标识的实现方式,可以是在目标数据库查找与目标版本标识相邻的版本标识,获得上一版本标识。

获取上一版本标识对应的目标表结构的实现方式,可以是基于上一版本标识,从目标数据库中查找目标表结构。

应用本发明实施例的方案,识别更新表结构的目标版本标识,并在目标数据库查询目标版本标识的上一版本标识,获取上一版本标识对应的目标表结构,使得后续可以基于获取的目标表结构和更新表结构对其他环境的数据库表结构进行同步,提高了后续同步的效率。

步骤104:对比更新表结构和目标表结构,获得表差异信息。

具体地,表差异信息表征更新表结构和目标表结构之间的差异,表差异信息的数据形式可以为数据库模式定义语言,还可以是结构化查询语言。

对比更新表结构和目标表结构,获得表差异信息的实现方式,可以是对比更新表结构和目标表结构中的结构属性信息,获得结构属性信息之间的差异,生成表差异信息。

表结构中包括至少一个结构属性信息,比如,结构属性信息可以为表信息、字段信息和索引信息。

本发明一种可选的实施例中,上述步骤对比更新表结构和目标表结构,获得表差异信息,包括如下步骤:

分别对比更新表结构和目标表结构的至少一个结构属性信息;

根据更新表结构和目标表结构之间至少一个结构属性信息的差异,确定表差异信息。

分别对比更新表结构和目标表结构的至少一个结构属性信息的实现方式,可以是比对更新表结构的第一结构属性信息和目标表结构的第一结构属性信息,获得第一差异信息,比对更新表结构的第二结构属性信息和目标表结构的第二结构属性信息,获得第二差异信息,其中,第一结构属性信息和第二结构属性信息为两个不同的结构属性信息。

根据更新表结构和目标表结构之间至少一个结构属性信息的差异,确定表差异信息的实现方式,可以是确定出现差异的至少一个结构属性信息,根据出现差异的至少一个结构属性信息对应的差异信息,确定表差异信息。

应用本发明实施例的方案,分别对比更新表结构和目标表结构的至少一个结构属性信息,根据更新表结构和目标表结构之间至少一个结构属性信息的差异,确定表差异信息,通过对比表结构的至少一个结构属性信息,并基于至少一个结构属性信息的比对结果,确定表差异信息,使得得到的表差异信息非常的全面,避免了出现遗漏的情况,提高了利用表差异信息对其他环境的表结构进行同步的效率。

本发明一种可选的实施例中,结构属性信息包括表信息、字段信息、索引信息中的至少之一。

具体地,表信息是指数据库表对应的信息,比如,数据库表的表编号、表名等。字段信息是指数据库表中各表格中所填写字段对应的信息,比如,字段信息可以为英文字母、数据形式为int8等。索引信息是指用于索引数据库表中各表格中数据内容的索引信息,比如,索引信息为从基础文件中获取数据,主键等。

示例性地,更新表结构的表信息为A,字段信息为int8,索引信息为普通索引;目标表结构的表信息为A,字段信息为int16,索引信息为主键,则通过对比更新表结构与目标表结构的表信息、字段信息和索引信息,获得由字段信息由int16变为int8、索引由主键变为普通索引生成的表差异信息。

应用本发明实施例的方案,结构属性包括表信息、字段信息和索引信息中的至少一种,使得在实际应用中可以根据实际情况为表结构设置对应的结构属性,便于基于结构属性的分类对不同表结构的结构属性进行比对,提高了比对结构属性获得表差异信息的效率。

步骤106:对表差异信息进行校验,在校验通过的情况下,将表差异信息发送至待同步环境,其中,表差异信息用于指示在待同步环境中对待同步表结构进行更新。

具体地,待同步环境是指待进行数据库表结构同步的环境,目标数据库为对软件进行开发的环境对应的数据库,待同步环境是对目标数据库对应的环境开发得到的软件进行运行的环境,比如,目标数据库为开发环境对应的数据库,待同步环境可以是测试环境、业务验收环境、预发布环境、生产环境等,以在开发环境的数据库表结构发生更新时,对待同步环境对应的数据库表结构进行同步更新。待同步表结构是指待同步环境中待被同步的表结构,待同步表结构的版本与开发环境中目标表结构的版本相对应。

表差异信息是在开发环境对应的数据库中对更新表结构和目标表结构进行比对生成的,为保证表差异信息在其他环境的可执行性,需要利用具有校验功能的数据库对表差异信息进行校验。

对表差异信息进行校验的实现方式,可以是在具有校验功能的数据库中对表差异信息进行执行,执行成功即为校验通过,执行失败即为校验失败。

可选地,执行成功的理解可以分为两种,第一种为表差异信息在具有校验功能的数据库中可以执行,未导致数据库的执行操作出现错误;第二种是执行表差异信息未出现错误,且将执行结果与基准结果比对时,比对成功,则确认执行成功。

可选地,在具有校验功能的数据库中对表差异信息进行执行的实现方式,可以是从具有校验功能的数据库中获取开发环境对应数据库表结构的建表信息,并基于建表信息在该数据库中创建表结构,对创建的表结构执行表差异信息。

本发明一种可选的实施例中,上述步骤对表差异信息进行校验,包括如下步骤:

从校验数据库中获取校验表结构,其中,校验数据库为与目标数据库同类型的独立数据库;

根据表差异信息对校验表结构进行更新,获得虚拟表结构;

对比虚拟表结构和更新表结构,确定表差异信息是否校验通过。

具体地,校验数据库是指具有校验功能的数据库,是独立于目标数据库之外的数据库,校验数据库中可以存储有各环境各版本的表结构对应的建表信息。校验表结构是指基于校验数据库中生成的表结构,校验表结构的版本与目标表结构的版本相对应。虚拟表结构是指基于表差异信息对校验表结构进行更新得到的表结构,虚拟表结构的版本与更新表结构的版本相对应。

从校验数据库中获取校验表结构的实现方式,可以是目标数据库向校验数据库发送校验请求,校验请求中携带更新表结构和差异信息,校验数据库基于校验请求,获取校验表结构。

获取校验表结构的实现方式,可以是获取目标表结构的建表信息,校验数据库基于建表信息生成校验表结构。

从校验数据库中获取校验表结构之前,校验数据库可以从目标数据库获取各发布的更新表结构的建表信息;还可以是基于获取标识,从建表信息存储处获取目标表结构对应的建表信息。

根据表差异信息对校验表结构进行更新,获得虚拟表结构的实现方式有很多种,具体根据实际情况进行确定,本发明在此不作限定。

本发明一种可能的实现方式中,根据表差异信息对校验表结构进行更新,获得虚拟表结构可以是对校验表结构执行表差异信息,获得虚拟表结构。

本发明另一种可能的实现方式中,根据表差异信息对校验表结构进行更新,获得虚拟表结构,可以是基于结构属性信息,对表差异信息进行拆分,获得至少一个结构属性对应的属性差异信息,基于至少一个结构属性对应的差属性异信息对校验表结构进行更新,获得虚拟表结构。

示例性地,对表差异信息进行拆分得到表信息和表字段分别对应的表信息差异信息和表字段差异信息,基于表信息差异信息和表字段差异信息对校验表结构的表信息和表字段进行更新,获得虚拟表结构。

基于至少一个结构属性对应的属性差异信息对校验表结构进行更新,获得虚拟表结构的实现方式,可以是对校验表结构执行各结构属性对应的属性差异信息,获得虚拟表结构。

示例性地,对校验表结构执行表信息差异信息和表字段差异信息,获得虚拟表结构。

对比虚拟表结构和更新表结构,确定表差异信息是否校验通过的实现方式,分别对比虚拟表结构和更新表结构的至少一个结构属性信息,基于所述至少一个结构属性信息的比对结果,确定是否校验通过,在对比结果均为对比成功的情况下,确定校验通过,在比对结果有任一个为比对失败的情况下,确定校验未通过。

应用本发明实施例的方案,通过从校验数据库中获取校验表结构,根据表差异信息对校验表结构进行更新,获得虚拟表结构,对比虚拟表结构和更新表结构确定表差异信息是否校验通过,也即在校验数据库中进行校验表结构的获取,在校验数据库基于校验表结构对表差异信息进行校验,得到的校验结果是在校验数据库中进行校验得到的,提高了校验结果的准确性,避免了校验结果不准确导致需要重新生成表差异信息,以及再次校验所需要执行的计算量,进而提高了基于表差异信息在目标环境进行表结构同步的效率。

本发明一种可选的实施例中,表差异信息携带表标识;从校验数据库中获取校验表结构,包括如下步骤:

从校验数据库中获取表标识指示的建表信息;

根据建表信息创建校验表结构。

具体地,表标识用于指示在校验数据库中获取目标表结构对应表结构的建表信息,比如,目标表结构的版本号为V2版本表标识用于指示在校验数据库中获得V2版本号的表结构对应的建表信息。

从校验数据库中获取表标识指示的建表信息的实现方式,可以是基于表标识从校验数据库中进行查找,获取表标识对应表结构的建表信息,在方案实现中,目标数据库在获得更新表结构的情况下,会生成更新表结构的建表信息,并将建表信息发送至校验数据库中进行存储,以使校验数据库利用建表信息对表差异信息进行校验。

根据建表信息创建校验表结构的实现方式,将建表信息按照结构属性信息进行划分,获得多个结构属性信息对应的建表子信息,基于至少一个结构属性信息之间的逻辑关系创建校验表结构,其中,逻辑关系是指不同结构属性之间的生成关系,比如,表信息生成之后,才会有字段信息和索引信息的生成。

应用本发明实施例的方案,从校验数据库中获取表标识指示的建表信息,根据建表信息创建校验表结构,实现在校验数据库中创建校验表结构,进而在与目标数据库相互独立的校验数据库中基于校验表结构对表差异信息进行校验,提高了对表差异信息进行校验的准确性,进而提高了表差异信息在目标环境的可执行性。

本发明一种可选的实施例中,对比虚拟表结构和更新表结构,确定表差异信息是否校验通过,包括如下步骤:

在虚拟表结构和更新表结构一致的情况下,确定表差异信息校验通过;

在虚拟表结构和更新表结构不一致的情况下,确定表差异信息校验未通过。

具体地,虚拟表结构和更新表结构一致是指虚拟表结构和更新表结构的结构属性信息均一致,其中,若虚拟表结构和更新表结构一致,则说明表差异信息在除目标数据库对应的环境中被执行,获得的执行结果与在目标数据库对应环境中执行的结果一致,确定表差异信息校验通过。虚拟表结构和更新表结构不一致是指虚拟表结构和更新表结构的结构属性信息存在任一项不一致,其中,若虚拟表结构和更新表结构不一致,则说明表差异信息在除目标数据库对应的环境中被执行,获得的执行结果与在目标数据库对应环境中执行的结果一致,确定表差异信息校验未通过。

在虚拟表结构和更新表结构一致的情况下,确定表差异信息校验通过的实现方式,可以是分别比对虚拟表结构和更新表结构的至少一个结构属性信息,在任意一个结构属性信息均一致的情况下,确定表差异信息校验通过。

在虚拟表结构和更新表结构不一致的情况下,确定表差异信息校验未通过的实现方式,可以是分别比对虚拟表结构和更新表结构的至少一个结构属性信息,在存在任意一个结构属性信息不一致的情况下,确定表差异信息校验未通过。

应用本发明实施例的方案,在虚拟表结构和更新表结构一致的情况下,确定表差异信息校验通过;不一致的情况下,确定表差异信息校验未通过,通过限定虚拟表结构和更新表结构的比对方式为一致性比对,提高了比对的全面性,进而保证了比对结果的准确性。

本发明一种可选的实施例中,所述表差异信息为差异可执行语句,所述表差异信息用于指示在所述待同步环境中对待同步表结构执行所述差异可执行语句进行更新。

具体地,差异可执行语句为计算机可执行的计算机语句,比如差异可执行语句可以是DDL语句。

在表差异信息校验通过之后,将表差异信息发送到待同步环境,以使待同步环境通过执行表差异信息,对待同步表结构进行同步,实现在目标数据库表结构有更新时,同步更新待同步环境中的待同步表结构。

表差异信息为差异可执行语句,使得在待同步环境中对待同步表结构执行差异可执行语句,获得同步后的同步表结构,实现不同环境表结构的同步。

应用本发明实施例的方案,表差异信息为差异可执行语句,以指示在待同步环境中对待同步表结构执行差异可执行语句进行表结构更新,实现对待同步环境中的待同步表结构的更新。

可选地,表差异信息为差异结构化可查询语句,则表差异信息用于指示在待同步环境中对待同步表结构执行差异结构化可查询语句进行更新。

本发明一个或多个实施例中,数据库表结构的更新/维护入口只有一个,也即只能通过目标数据库进行表结构的更新,其他环境的数据库表结构无法被直接更新,只能通过执行表差异信息进行表结构的同步,避免了表结构被随意更改的问题。同步机制还可以保证其他环境的数据库表结构最终与开发环境的一致性。

应用本发明实施例的方案,基于获取的更新表结构,获取与更新表结构相对应的上一版本的目标表结构,通过对比两个版本的表结构,获得两个版本的表结构之间的表差异信息,并在表差异信息校验通过的情况下,将表差异信息发送到其他环境进行同步,以向其他环境同步目标数据库表结构的更新,也即在有数据库表结构更新的情况下,根据两个不同版本数据库表结构的对比,获得表差异信息,在确认了表差异信息的可用性校验通过的情况下,利用表差异信息同步更新其他环境的数据库表结构,实现自动化的对不同环境数据库表结构的更新与维护,且自动化的对表差异信息进行整理,无需为了避免人工整理出现的信息遗漏、结构混乱等问题进行反复查验,提高了不同环境数据库表结构同步的效率。

下述结合附图2,以本发明提供的数据库表结构的同步方法在开发环境和生产环境的应用为例,对所述数据库表结构的同步方法进行进一步说明。其中,图2示出了本发明一个实施例提供的一种数据库表结构的同步方法的处理过程流程图,具体包括以下步骤。

步骤202:接收表结构更新指令,获得候选表结构,并存储候选表结构的结构属性信息和建表信息。

用户通过前端创建开发环境对应的新数据库表结构,点击完成按键,生成表结构更新指令,表结构更新指令携带创建的数据库表结构,以使服务端接收表结构更新指令中的创建的数据库表结构,将创建的数据库表结构作为候选表结构;

对候选表结构进行信息提取,获得结构属性信息和建表DDL。

步骤204:接收表结构发布指令,将表结构发布指令指示发布的候选表结构作为更新表结构。

将候选表结构通过页面展示给前端,在接收到前端对创建按键的点击操作的情况下,将候选表结构发布为更新表结构,并生成更新表结构的版本标识V3。

步骤206:识别更新表结构的目标版本标识,并在目标数据库查询目标版本标识的上一版本标识。

识别更新表结构的目标版本标识V3,并在目标数据库中查询V3的上一版本标识为V2。

步骤208:获取上一版本标识对应的目标表结构。

获取版本标识V2对应的目标表结构。

步骤210:分别对比更新表结构和目标表结构的至少一个结构属性信息。

分别对比V3版本的更新表结构和V2版本的目标表结构中的表信息、字段信息和索引信息。

步骤212:根据更新表结构和目标表结构之间至少一个结构属性信息的差异,确定表差异信息。

汇总分别比对表信息、字段信息和索引信息得到的差异信息,确定差异DDL。

步骤214:从校验数据库中获取表标识指示的建表信息,根据建表信息创建校验表结构。

其中,校验数据库为与目标数据库同类型的独立数据库。

从校验数据库中,获取并执行开发环境对应V2版本的建表DDL,生成校验表结构。

步骤216:根据表差异信息对校验表结构进行更新,获得虚拟表结构。

对校验表结构执行差异DDL,获得虚拟表结构。

步骤218:对比虚拟表结构和更新表结构,确定表差异信息是否校验通过。

在虚拟表结构和更新表结构一致的情况下,确定表差异信息校验通过;

在虚拟表结构和更新表结构不一致的情况下,确定表差异信息校验未通过。

步骤220:在校验通过的情况下,将表差异信息发送至待同步环境,其中,表差异信息用于指示在待同步环境中对待同步表结构进行更新。

具体地,待同步环境对待同步表结构执行表差异信息,实现对待同步表结构的更新。

表差异信息为差异DDL语句,差异DDL语句用于指示在生产环境中对待同步表结构执行差异DDL语句进行更新。

应用本发明实施例的方案,基于获取的更新表结构,获取与更新表结构相对应的上一版本的目标表结构,通过对比两个版本的表结构,获得两个版本的表结构之间的表差异信息,并在表差异信息校验通过的情况下,将表差异信息发送到其他环境进行同步,以向其他环境同步目标数据库表结构的更新,也即在有数据库表结构更新的情况下,根据两个不同版本数据库表结构的对比,获得表差异信息,在确认了表差异信息的可用性校验通过的情况下,利用表差异信息同步更新其他环境的数据库表结构,实现自动化的对不同环境数据库表结构的更新与维护,且自动化的对表差异信息进行整理,无需为了避免人工整理出现的信息遗漏、结构混乱等问题进行反复查验,提高了不同环境数据库表结构同步的效率。

与上述方法实施例相对应,本发明还提供了数据库表结构的同步装置实施例,图3示出了本发明一个实施例提供的一种数据库表结构的同步装置的结构示意图。如图3所示,该装置包括:

获取模块302,被配置为获取目标数据库的更新表结构,并获取更新表结构对应的上一版本的目标表结构;

对比模块304,被配置为对比更新表结构和目标表结构,获得表差异信息;

发送模块306,被配置为对表差异信息进行校验,在校验通过的情况下,将表差异信息发送至待同步环境,其中,表差异信息用于指示在待同步环境中对待同步表结构进行更新。

可选地,对比模块304,进一步被配置为分别对比更新表结构和目标表结构的至少一个结构属性信息;根据更新表结构和目标表结构之间至少一个结构属性信息的差异,确定表差异信息。

可选地,结构属性信息包括表信息、字段信息、索引信息中的至少之一。

可选地,发送模块306,进一步被配置为从校验数据库中获取校验表结构,其中,校验数据库为与目标数据库同类型的独立数据库;根据表差异信息对校验表结构进行更新,获得虚拟表结构;对比虚拟表结构和更新表结构,确定表差异信息是否校验通过。

可选地,表差异信息携带表标识;发送模块306,进一步被配置为从校验数据库中获取表标识指示的建表信息;根据建表信息创建校验表结构。

可选地,发送模块306,进一步被配置为在虚拟表结构和更新表结构一致的情况下,确定表差异信息校验通过;在虚拟表结构和更新表结构不一致的情况下,确定表差异信息校验未通过。

可选地,获取模块302,进一步被配置为接收表结构更新指令,获得候选表结构,并存储候选表结构的结构属性信息和建表信息;接收表结构发布指令,将表结构发布指令指示发布的候选表结构作为更新表结构。

可选地,表差异信息为差异可执行语句,表差异信息用于指示在待同步环境中对待同步表结构执行差异可执行语句进行更新。

可选地,获取模块302,进一步被配置为识别更新表结构的目标版本标识,并在目标数据库查询目标版本标识的上一版本标识;获取上一版本标识对应的目标表结构。

应用本发明实施例的方案,基于获取的更新表结构,获取与更新表结构相对应的上一版本的目标表结构,通过对比两个版本的表结构,获得两个版本的表结构之间的表差异信息,并在表差异信息校验通过的情况下,将表差异信息发送到其他环境进行同步,以向其他环境同步目标数据库表结构的更新,也即在有数据库表结构更新的情况下,根据两个不同版本数据库表结构的对比,获得表差异信息,在确认了表差异信息的可用性校验通过的情况下,利用表差异信息同步更新其他环境的数据库表结构,实现自动化的对不同环境数据库表结构的更新与维护,且自动化的对表差异信息进行整理,无需为了避免人工整理出现的信息遗漏、结构混乱等问题进行反复查验,提高了不同环境数据库表结构同步的效率。

上述为本实施例的一种数据库表结构的同步装置的示意性方案。需要说明的是,该数据库表结构的同步装置的技术方案与上述的数据库表结构的同步方法的技术方案属于同一构思,数据库表结构的同步装置的技术方案未详细描述的细节内容,均可以参见上述数据库表结构的同步方法的技术方案的描述。

图4示出了根据本发明一个实施例提供的一种计算设备的结构框图。该计算设备400的部件包括但不限于存储器410和处理器420。处理器420与存储器410通过总线430相连接,数据库450用于保存数据。

计算设备400还包括接入设备440,接入设备440使得计算设备400能够经由一个或多个网络460通信。这些网络的示例包括公用交换电话网(PSTN,Public SwitchedTelephone Network)、局域网(LAN,Local Area Network)、广域网(WAN,Wide AreaNetwork)、个域网(PAN,Personal Area Network)或诸如因特网的通信网络的组合。接入设备440可以包括有线或无线的任何类型的网络接口(例如,网络接口卡(NIC,networkinterface controller))中的一个或多个,诸如IEEE802.11无线局域网(WLAN,WirelessLocal Area Network)无线接口、全球微波互联接入(Wi-MAX,WorldwideInteroperability for Microwave Access)接口、以太网接口、通用串行总线(USB,Universal Serial Bus)接口、蜂窝网络接口、蓝牙接口、近场通信(NFC,Near FieldCommunication)。

在本发明的一个实施例中,计算设备400的上述部件以及图4中未示出的其他部件也可以彼此相连接,例如通过总线。应当理解,图4所示的计算设备结构框图仅仅是出于示例的目的,而不是对本发明范围的限制。本领域技术人员可以根据需要,增添或替换其他部件。

计算设备400可以是任何类型的静止或移动计算设备,包括移动计算机或移动计算设备(例如,平板计算机、个人数字助理、膝上型计算机、笔记本计算机、上网本等)、移动电话(例如,智能手机)、可佩戴的计算设备(例如,智能手表、智能眼镜等)或其他类型的移动设备,或者诸如台式计算机或个人计算机(PC,Personal Computer)的静止计算设备。计算设备400还可以是移动式或静止式的服务器。

其中,处理器420用于执行如下计算机可执行指令,该计算机可执行指令被处理器执行时实现上述数据库表结构的同步方法的步骤。

上述为本实施例的一种计算设备的示意性方案。需要说明的是,该计算设备的技术方案与上述的数据库表结构的同步方法的技术方案属于同一构思,计算设备的技术方案未详细描述的细节内容,均可以参见上述数据库表结构的同步方法的技术方案的描述。

本发明一实施例还提供一种计算机可读存储介质,其存储有计算机可执行指令,该计算机可执行指令被处理器执行时实现上述数据库表结构的同步方法的步骤。

上述为本实施例的一种计算机可读存储介质的示意性方案。需要说明的是,该存储介质的技术方案与上述的数据库表结构的同步方法的技术方案属于同一构思,存储介质的技术方案未详细描述的细节内容,均可以参见上述数据库表结构的同步方法的技术方案的描述。

本发明一实施例还提供一种计算机程序,其中,当所述计算机程序在计算机中执行时,令计算机执行上述数据库表结构的同步方法的步骤。

上述为本实施例的一种计算机程序的示意性方案。需要说明的是,该计算机程序的技术方案与上述的数据库表结构的同步方法的技术方案属于同一构思,计算机程序的技术方案未详细描述的细节内容,均可以参见上述数据库表结构的同步方法的技术方案的描述。

上述对本发明特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。

所述计算机指令包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-On ly Memory)、随机存取存储器(RAM,Random AccessMemory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据专利实践的要求进行适当的增减,例如在某些地区,根据专利实践,计算机可读介质不包括电载波信号和电信信号。

需要说明的是,对于前述的各方法实施例,为了简便描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明实施例并不受所描述的动作顺序的限制,因为依据本发明实施例,某些步骤可以采用其它顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定都是本发明实施例所必须的。

在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其它实施例的相关描述。

以上公开的本发明优选实施例只是用于帮助阐述本发明。可选实施例并没有详尽叙述所有的细节,也不限制该发明仅为所述的具体实施方式。显然,根据本发明实施例的内容,可作很多的修改和变化。本发明选取并具体描述这些实施例,是为了更好地解释本发明实施例的原理和实际应用,从而使所属技术领域技术人员能很好地理解和利用本发明。本发明仅受权利要求书及其全部范围和等效物的限制。

相关技术
  • 数据库的日志分析处理方法及装置、DDL同步方法及装置
  • 一种智能制造的数据库资源池的实时同步方法及装置
  • 数据库同步方法、装置、服务器和存储介质
  • 实时数据库同步方法、装置、电子设备及存储介质
  • 一种数据库表结构同步方法、装置、电子设备及存储介质
  • 一种基于配置文件的数据库表结构同步方法、装置和系统
技术分类

06120116497172