首页> 中国专利> 一种数据库结构差异报告生成方法及装置

一种数据库结构差异报告生成方法及装置

摘要

本发明提供一种数据库结构差异报告生成方法及装置,方法包括:确定第一数据库和第二数据库的联通性;根据所述第一数据库和第二数据库的联通性以及预设对比策略,生成所述第一数据库和所述第二数据库的数据库结构差异报告。本发明的方案解决了无法同时连接两个环境数据库的问题,便于项目组排查问题,同时进行设计归档。

著录项

  • 公开/公告号CN112711573A

    专利类型发明专利

  • 公开/公告日2021-04-27

    原文格式PDF

  • 申请/专利权人 中化石化销售有限公司;

    申请/专利号CN202110052567.3

  • 发明设计人 陈仁飞;

    申请日2021-01-15

  • 分类号G06F16/21(20190101);

  • 代理机构11831 北京润捷智诚知识产权代理事务所(普通合伙);

  • 代理人安利霞

  • 地址 200120 上海市浦东新区浦东大道1200号2层206室

  • 入库时间 2023-06-19 10:46:31

说明书

技术领域

本发明涉及数据库处理技术领域,特别是指一种数据库结构差异报告生成方法及装置。

背景技术

数据库差异对比工具目前一般都是基于数据库客户端来完成的,即一般都是视窗化的图形化操作工具(比如Navicat),存在较多的缺陷:

图形化操作,需要较多步骤的操作,一般都需要手工选择数据库再选择表,无法直接对比整个数据库,也无法对表进行填写表达式匹配模式的配置;

操作过程比较麻烦,每次都需要进行图形化操作,无法一个可执行文件点击即可出报告。

最关键的问题在于不同的数据库,不同环境是网络隔离的,导致无法进行有效对比,如果同时开放访问不同数据库环境(尤其生产环境),又产生了安全性问题。

发明内容

本发明要解决的技术问题是提供一种数据库结构差异报告生成方法及装置,解决了现实业务场景下无法同时连接两个环境数据库的问题,便于项目组排查问题,同时进行设计归档。

为解决上述技术问题,本发明的技术方案如下:

一种数据库结构差异报告生成方法,包括:

确定第一数据库和第二数据库的联通性;

根据所述第一数据库和第二数据库的联通性以及预设对比策略,生成所述第一数据库和所述第二数据库的数据库结构差异报告。

可选的,确定第一数据库和第二数据库的联通性,包括:

获取为第一数据库配置的第一连接信息以及为第二数据库配置的第二连接信息;

根据所述第一连接信息测试第一数据库的联通性以及根据第二连接信息测试第二数据库的联通性。

可选的,根据所述第一数据库和第二数据库的联通性以及预设对比策略,生成所述第一数据库和所述第二数据库的数据库结构差异报告,包括:

若所述第一数据库联通,所述第二数据库不联通,生成第一数据库的第一数据库结构文件;

将所述第一数据库结构文件与预先生成的第二数据库的第二数据库结构文件进行比对,生成所述第一数据库和所述第二数据库的数据库结构差异报告。

可选的,根据所述第一数据库和第二数据库的联通性以及预设对比策略,生成所述第一数据库和所述第二数据库的数据库结构差异报告,包括:

若所述第一数据库联通,所述第二数据库联通,生成第一数据库的第一数据库结构文件以及生成第二数据库的第二数据库结构文件;

将所述第一数据库结构文件与所述第二数据库结构文件进行比对,生成所述第一数据库和所述第二数据库的数据库结构差异报告。

可选的,根据所述第一数据库和第二数据库的联通性以及预设对比策略,生成所述第一数据库和所述第二数据库的数据库结构差异报告,包括:

若所述第一数据库不联通,所述第二数据库不联通,获取预先生成的第一数据库的第一数据库结构文件以及预先生成的第二数据库的第二数据库结构文件;

将所述第一数据库结构文件与所述第二数据库结构文件进行比对,生成所述第一数据库和所述第二数据库的数据库结构差异报告。

可选的,数据库结构差异报告生成方法还包括:

若所述第一数据库由不联通状态转换为联通状态时,生成新的第一数据库的第一数据库结构文件,并用新的第一数据库的第一数据库结构文件覆盖原有第一数据库结构文件。

可选的,所述数据库结构差异报告包括以下至少一项:

数据库表、数据库表中的对象的名称、第一数据库下对应的对象是否存在的信息、第二数据库下对应的对象是否存在的信息以及对象对应的字段差异信息。

可选的,所述第一数据库为以下至少一种:dev、test、uat、prod;

所述第二数据库为以下至少一种:dev、test、uat、prod。

可选的,所述第一数据库结构文件为.schema文件结构的文件;

所述第一数据库结构文件为.schema文件结构的文件。

本发明的实施例还提供一种数据库结构差异报告生成装置,其特征在于,包括:

确定模块,用于确定第一数据库和第二数据库的联通性;

生成模块,用于根据所述第一数据库和第二数据库的联通性以及预设对比策略,生成所述第一数据库和所述第二数据库的数据库结构差异报告。

本发明的上述方案至少包括以下有益效果:

本发明的上述方案,通过确定第一数据库和第二数据库的联通性;根据所述第一数据库和第二数据库的联通性以及预设对比策略,生成所述第一数据库和所述第二数据库的数据库结构差异报告。解决了现实业务场景下无法同时连接两个环境数据库的问题,便于项目组排查问题,同时进行设计归档。

附图说明

图1是本发明的数据库结构差异报告生成方法的流程示意图;

图2是本发明的数据库结构差异报告生成方式在两个数据库环境分别是UAT、PROD的情况下的处理流程示意图;

图3是本发明的实施例数据库结构差异报告生成装置的模块结构示意图。

具体实施方式

下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。

如图1所示,本发明的实施例提出一种数据库结构差异报告生成方法,其特征在于,包括:

步骤11,确定第一数据库和第二数据库的联通性;

步骤12,根据所述第一数据库和第二数据库的联通性以及预设对比策略,生成所述第一数据库和所述第二数据库的数据库结构差异报告。

该实施例,可以实现根据数据库的联通性以及预设对比策略,生成相应的数据库结构差异报告,进一步利用结构文件进行差异对比,解决了现实业务场景下无法同时连接两个环境数据库的问题,便于项目组排查问题,同时进行设计归档。

本发明的一可选的实施例中,步骤11可以包括:

获取为第一数据库配置的第一连接信息以及为第二数据库配置的第二连接信息;根据所述第一连接信息测试第一数据库的联通性以及根据第二连接信息测试第二数据库的联通性。

这里,所述第一数据库为以下至少一种:dev、test、uat、prod;所述第二数据库为以下至少一种:dev、test、uat、prod。

本发明的一可选的实施例中,对步骤12中的数据库结构差异报告,可选的,所述数据库结构差异报告包括以下至少一项:

数据库表、数据库表中的对象的名称、第一数据库下对应的对象是否存在的信息、第二数据库下对应的对象是否存在的信息以及对象对应的字段差异信息。

本发明的一可选实施例中,数据库结构差异报告如表1所示:

表1

这里第一数据库结构文件和第二数据库结构文件的类型,可选的,所述第一数据库结构文件为.schema文件结构的文件;所述第一数据库结构文件为.schema文件结构的文件。

本发明的一可选的实施例中,如图2所示,两个数据库环境分别是UAT(用户验收测试)、PROD(生产),数据库结构差异报告生成是通过以下过程进行的:

配置2个数据库的连接信息,并设置对比方式是离线式还是在线模式,离线模式即全部先生成schema文件;

进行执行对比,会存在以下情况,包括:

情况一:若所述第一数据库联通,所述第二数据库不联通,生成第一数据库的第一数据库结构文件;将所述第一数据库结构文件与预先生成的第二数据库的第二数据库结构文件进行比对,生成所述第一数据库和所述第二数据库的数据库结构差异报告;

这里,在本发明的一可选的实施例中,

假设第一数据库的数据库环境为UAT,第二数据库的数据库环境为PROD。UAT环境下的数据库联通,PROD环境下的数据库不联通,生成UAT环境下的数据库结构文件,将UAT环境下数据库结构文件与预先生成的PROD环境下数据库的PROD环境下数据库结构文件进行比对,生成UAT环境下数据库和PROD环境下数据库的数据库结构差异报告;

假设第一数据库的数据库环境为PROD,第二数据库的数据库环境为UAT。PROD环境下的数据库联通,UAT环境下的数据库不联通,生成PROD环境下的数据库结构文件,将PROD环境下数据库结构文件与预先生成的UAT环境下数据库的UAT环境下数据库结构文件进行比对,生成PROD环境下数据库和UAT环境下数据库的数据库结构差异报告。

情况二:对比策略,生成所述第一数据库和所述第二数据库的数据库结构差异报告,包括:若所述第一数据库联通,所述第二数据库联通,生成第一数据库的第一数据库结构文件以及生成第二数据库的第二数据库结构文件;将所述第一数据库结构文件与所述第二数据库结构文件进行比对,生成所述第一数据库和所述第二数据库的数据库结构差异报告;

这里,在本发明的一可选的实施例中,设第一数据库的数据库环境为UAT,二数据库的数据库环境为PROD。UAT环境下数据库联通,PROD环境下数据库联通,生成UAT环境下数据库的UAT环境下数据库结构文件以及生成PROD环境下数据库的PROD环境下数据库结构文件;将UAT环境下数据库结构文件与PROD环境下数据库结构文件进行比对,生成UAT环境下数据库和PROD环境下数据库的数据库结构差异报告;

在第一数据库的数据库环境为PROD,第二数据库的数据库环境为UAT的情况下,做法与上述相同。

情况三:若所述第一数据库不联通,所述第二数据库不联通,获取预先生成的第一数据库的第一数据库结构文件以及预先生成的第二数据库的第二数据库结构文件;将所述第一数据库结构文件与所述第二数据库结构文件进行比对,生成所述第一数据库和所述第二数据库的数据库结构差异报告;

这里,在本发明的一可选的实施例中,设第一数据库的数据库环境为UAT,二数据库的数据库环境为PROD。UAT环境下数据库不联通,PROD环境下数据库不联通,获取预先生成的UAT环境下数据库的UAT环境下数据库结构文件以及预先生成的PROD环境下数据库的PROD环境下数据库结构文件;将UAT环境下数据库结构文件与PROD环境下数据库结构文件进行比对,生成UAT环境下数据库和PROD环境下数据库的数据库结构差异报告;

在第一数据库的数据库环境为PROD,第二数据库的数据库环境为UAT的情况下,做法与上述相同。

本发明的一可选的实施例中,数据库结构差异报告生成方法还可以包括:

若所述第一数据库由不联通状态转换为联通状态时,生成新的第一数据库的第一数据库结构文件,并用新的第一数据库的第一数据库结构文件覆盖原有第一数据库结构文件。

本发明的上述实施例支持数据库在线和离线模式,核心是支持离线模式,这是目前这类工具所不具备的。并且本发明的实施例会自动检测数据库联通状态,一旦可连接情况下会重新生成结构文件并覆盖本地的文件,保持结构文件是最新的,当检测到数据库连接不通时,优先检测本地是否已经存在结构文件,用结构文件进行对比。从而可以实现两个数据库同时连接场景下的数据库结构对比。

如图3所示,本发明实施例还提供一种数据库结构差异报告生成装置30,应用于网络设备,所述装置30包括:

确定模块31,用于确定第一数据库和第二数据库的联通性;

生成模块32,用于根据所述第一数据库和第二数据库的联通性以及预设对比策略,生成所述第一数据库和所述第二数据库的数据库结构差异报告。

可选的,确定第一数据库和第二数据库的联通性,包括:

获取为第一数据库配置的第一连接信息以及为第二数据库配置的第二连接信息;

根据所述第一连接信息测试第一数据库的联通性以及根据第二连接信息测试第二数据库的联通性。

可选的,根据所述第一数据库和第二数据库的联通性以及预设对比策略,生成所述第一数据库和所述第二数据库的数据库结构差异报告,包括:

若所述第一数据库联通,所述第二数据库不联通,生成第一数据库的第一数据库结构文件;

将所述第一数据库结构文件与预先生成的第二数据库的第二数据库结构文件进行比对,生成所述第一数据库和所述第二数据库的数据库结构差异报告。

可选的,根据所述第一数据库和第二数据库的联通性以及预设对比策略,生成所述第一数据库和所述第二数据库的数据库结构差异报告,包括:

若所述第一数据库联通,所述第二数据库联通,生成第一数据库的第一数据库结构文件以及生成第二数据库的第二数据库结构文件;

将所述第一数据库结构文件与所述第二数据库结构文件进行比对,生成所述第一数据库和所述第二数据库的数据库结构差异报告。

可选的,根据所述第一数据库和第二数据库的联通性以及预设对比策略,生成所述第一数据库和所述第二数据库的数据库结构差异报告,包括:

若所述第一数据库不联通,所述第二数据库不联通,获取预先生成的第一数据库的第一数据库结构文件以及预先生成的第二数据库的第二数据库结构文件;

将所述第一数据库结构文件与所述第二数据库结构文件进行比对,生成所述第一数据库和所述第二数据库的数据库结构差异报告。

可选的,根据所述第一数据库和第二数据库的联通性以及预设对比策略,生成所述第一数据库和所述第二数据库的数据库结构差异报告,还包括:

若所述第一数据库由不联通状态转换为联通状态时,生成新的第一数据库的第一数据库结构文件,并用新的第一数据库的第一数据库结构文件覆盖原有第一数据库结构文件。

可选的,所述数据库结构差异报告包括以下至少一项:数据库表、数据库表中的对象的名称、第一数据库下对应的对象是否存在的信息、第二数据库下对应的对象是否存在的信息以及对象对应的字段差异信息。

可选的,所述第一数据库为以下至少一种:dev、test、uat、prod;所述第二数据库为以下至少一种:dev、test、uat、prod。

可选的,所述第一数据库结构文件为.schema文件结构的文件;所述第一数据库结构文件为.schema文件结构的文件。

需要说明的是,该装置是与上述方法实施例对应的装置,上述实施例中的所有实现方式均适用于该装置的实施例中,也能达到相同的技术效果。该装置还可以进一步包括生成模块32,用于处理确定模块31的两个数据库提供的信息。

本发明的实施例还提供一种处理器可读存储介质,所述处理器可读存储介质存储有处理器可执行指令,所述处理器可执行指令用于使所述处理器执行如上所述的方法。上述方法实施例中的所有实现方式均适用于该实施例中,也能达到相同的技术效果。

本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。

所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

在本发明所提供的实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。

所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。

此外,需要指出的是,在本发明的装置和方法中,显然,各部件或各步骤是可以分解和/或重新组合的。这些分解和/或重新组合应视为本发明的等效方案。并且,执行上述系列处理的步骤可以自然地按照说明的顺序按时间顺序执行,但是并不需要一定按照时间顺序执行,某些步骤可以并行或彼此独立地执行。对本领域的普通技术人员而言,能够理解本发明的方法和装置的全部或者任何步骤或者部件,可以在任何计算装置(包括处理器、存储介质等)或者计算装置的网络中,以硬件、固件、软件或者它们的组合加以实现,这是本领域普通技术人员在阅读了本发明的说明的情况下运用他们的基本编程技能就能实现的。

因此,本发明的目的还可以通过在任何计算装置上运行一个程序或者一组程序来实现。所述计算装置可以是公知的通用装置。因此,本发明的目的也可以仅仅通过提供包含实现所述方法或者装置的程序代码的程序产品来实现。也就是说,这样的程序产品也构成本发明,并且存储有这样的程序产品的存储介质也构成本发明。显然,所述存储介质可以是任何公知的存储介质或者将来所开发出来的任何存储介质。还需要指出的是,在本发明的装置和方法中,显然,各部件或各步骤是可以分解和/或重新组合的。这些分解和/或重新组合应视为本发明的等效方案。并且,执行上述系列处理的步骤可以自然地按照说明的顺序按时间顺序执行,但是并不需要一定按照时间顺序执行。某些步骤可以并行或彼此独立地执行。

以上所述是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明所述原理的前提下,还可以作出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号