CN110489401B - 一种数据库对象的部署方法及装置 - Google Patents
一种数据库对象的部署方法及装置 Download PDFInfo
- Publication number
- CN110489401B CN110489401B CN201910790797.2A CN201910790797A CN110489401B CN 110489401 B CN110489401 B CN 110489401B CN 201910790797 A CN201910790797 A CN 201910790797A CN 110489401 B CN110489401 B CN 110489401B
- Authority
- CN
- China
- Prior art keywords
- database object
- database
- information
- sql
- updating
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 48
- 238000013507 mapping Methods 0.000 claims abstract description 34
- 238000002955 isolation Methods 0.000 claims description 6
- 238000010276 construction Methods 0.000 claims description 5
- 230000008569 process Effects 0.000 description 14
- 238000012423 maintenance Methods 0.000 description 10
- 230000008859 change Effects 0.000 description 8
- 238000011161 development Methods 0.000 description 4
- 238000010586 diagram Methods 0.000 description 4
- 230000007246 mechanism Effects 0.000 description 4
- 230000004048 modification Effects 0.000 description 4
- 238000012986 modification Methods 0.000 description 4
- 230000005856 abnormality Effects 0.000 description 3
- 230000009471 action Effects 0.000 description 3
- 230000006870 function Effects 0.000 description 2
- 230000006872 improvement Effects 0.000 description 2
- 239000002184 metal Substances 0.000 description 2
- 238000005538 encapsulation Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000004806 packaging method and process Methods 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/21—Design, administration or maintenance of databases
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/23—Updating
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供了一种数据库对象的部署方法及装置。该方法包括:确定至少两个数据库所对应的共性信息,根据所述共性信息,构建数据库对象;确定所述至少两个数据库所对应的差异信息,构建所述差异信息与每一个所述数据库的映射关系;根据所述差异信息以及所述映射关系,分别配置所述数据库对象的扩展信息;根据配置后的所述扩展信息,更新所述数据库对象。本方案能够简化数据库对象的管理和使用,提高数据库对象的准确性。
Description
技术领域
本发明涉及计算机技术领域,特别涉及一种数据库对象的部署方法及装置。
背景技术
随着软件的发展,要求软件更加的灵活,能够支持各种不同的数据库类型。为了提升性能,拆分数据库对象表成为了一种常见的应用场景,要求数据库对象一份描述能够对应多个物理表,且运行环境中能够根据上下文信息确定当前应访问的表。以上场景,对支撑软件的表、视图等各类数据库对象的管理提出了更高的要求。
目前,数据库对象主要是通过SQL进行描述,且不同数据库需要分别写不同的SQL,每个写SQL的人需要掌握不同数据库的相关知识技能,以及他们之间的差异。同时,由于SQL的编写繁琐复杂,手工书写容易导致不同数据库之间的结构有所差异引发错误,且发生变更时需要同步多份描述,导致维护困难,准确率低且效率低下。为了提升性能,拆分数据库对象表成为了一种常见的应用场景,如果用不同的对象来描述拆分出来的不同的表,一是维护的工作量大大增加,二是结构变更时需要调整的位置太多容易因为人工原因引发异常。
发明内容
本发明实施例提供了一种数据库对象的部署方法及装置,能够简化数据库对象的管理和使用,提高数据库对象的准确性。
第一方面,本发明实施例提供了一种数据库对象的部署方法,包括:
确定至少两个数据库所对应的共性信息,根据所述共性信息,构建数据库对象;
确定所述至少两个数据库所对应的差异信息,构建所述差异信息与每一个所述数据库的映射关系;
根据所述差异信息以及所述映射关系,分别配置所述数据库对象的扩展信息;
根据配置后的所述扩展信息,更新所述数据库对象。
优选地,
所述更新所述数据库对象,包括:
根据用户输入的指令信息,确定所述差异信息所对应的目标数据库;
确定是否存在所述目标数据库的目标数据库对象与SQL文件的关联信息,如果是,根据所述SQL文件中的SQL语句,更新所述数据库对象。
优选地,
当不存在所述关联信息时,进一步包括:
根据所述目标数据库对象的属性信息,利用预设规则调整所述目标数据库对象;其中,所述预设规则包括以下任意一个或多个:多语、对象名称规则、主键名、租户隔离策略、是否启用时间戳字段;
确定是否存在历史数据库对象,如果是,利用实体识别框架识别历史数据库对象与所述目标数据库对象之间的差异,并根据所述差异生成增量SQL;
利用所述增量SQL更新所述数据库对象。
优选地,
当不存在所述目标数据库对象时,进一步包括:
利用所述实体识别框架构造数据库对象;
根据构造的所述数据库对象创建目标SQL,根据所述目标SQL更新所述数据库对象。
优选地,
以文件方式存放所述共性信息和/或所述数据库对象。
优选地,
当存在新增数据库描述和/或增量SQL时,进一步包括:
更新数据库描述与所述数据库对象之间的映射关系。
第二方面,本发明实施例提供了一种数据库对象的部署装置,包括:实体构建模块、确定模块和更新模块;其中,
所述实体构建模块,用于确定至少两个数据库所对应的共性信息,根据所述共性信息,构建数据库对象;
所述确定模块,用于确定所述至少两个数据库所对应的差异信息,构建所述差异信息与每一个所述数据库的映射关系;
所述更新模块,用于根据所述差异信息以及所述映射关系,分别配置所述数据库对象的扩展信息;根据配置后的所述扩展信息,更新所述数据库对象。
优选地,
所述更新模块,用于根据用户输入的指令信息,确定所述差异信息所对应的目标数据库;确定是否存在所述目标数据库的目标数据库对象与SQL文件的关联信息,如果是,根据所述SQL文件中的SQL语句,更新所述数据库对象。
优选地,
所述更新模块,当不存在所述关联信息时,进一步用于根据所述目标数据库对象的属性信息,利用预设规则调整所述目标数据库对象;其中,所述预设规则包括以下任意一个或多个:多语、对象名称规则、主键名、租户隔离策略、是否启用时间戳字段;确定是否存在历史数据库对象,如果是,利用实体识别框架识别历史数据库对象与所述目标数据库对象之间的差异,并根据所述差异生成增量SQL,利用所述增量SQL更新所述数据库对象。
优选地,
所述更新模块,用于当不存在所述目标数据库对象时,进一步用于利用所述实体识别框架构造数据库对象,根据构造的所述数据库对象创建目标SQL,根据所述目标SQL更新所述数据库对象;
优选地,
所述更新模块,进一步用于当存在新增数据库描述和/或增量SQL时,更新数据库描述与所述数据库对象之间的映射关系。
本发明实施例提供了一种数据库对象的部署方法及装置,用于数据库的分支版本管理以及支撑产品的运行,通过确定数据库的共性信息,构建数据库对象,然后根据数据库的差异信息,构建映射关系,然后根据映射关系,配置数据库对象的扩展信息,最后根据配置后的扩展信息,更新数据库对象。由此,通过提供屏蔽数据库差异的实体描述结构,减少了数据库对象维护的工作量,使得数据库对象管理的透明且可视,解决了以往通过SQL进行管理的复杂度和专业性要求高的问题,并且本发明实施例提供了自动识别实体结构变更的部署方式以及现代化的版本分支管理,减少了人为因素引发的错误和异常,从而简化了数据库对象的管理和使用,提高数据库对象的准确性。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明一个实施例提供的一种数据库对象的部署方法的流程图;
图2是本发明另一个实施例提供的一种数据库对象的部署方法的流程图;
图3是本发明一个实施例提供的一种数据库对象部署序列图;
图4是本发明一个实施例提供的一种数据库对象的生命周期示意图;
图5是本发明一个实施例提供的一种数据库对象的部署装置的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例,基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
如图1所示,本发明实施例提供了一种数据库对象的部署方法,该方法可以包括以下步骤:
步骤101:确定至少两个数据库所对应的共性信息,根据所述共性信息,构建数据库对象;
步骤102:确定所述至少两个数据库所对应的差异信息,构建所述差异信息与每一个所述数据库的映射关系;
步骤103:根据所述差异信息以及所述映射关系,分别配置所述数据库对象的扩展信息;
步骤104:根据配置后的所述扩展信息,更新所述数据库对象。
上述实施例中,通过确定数据库的共性信息,构建数据库对象,然后根据数据库的差异信息,构建映射关系,然后根据映射关系,配置数据库对象的扩展信息,最后根据配置后的扩展信息,更新数据库对象。由此,通过提供屏蔽数据库差异的实体描述结构,减少了数据库对象维护的工作量,使得数据库对象管理的透明且可视,解决了以往通过SQL进行管理的复杂度和专业性要求高的问题,并且本发明实施例提供了自动识别实体结构变更的部署方式以及现代化的版本分支管理,减少了人为因素引发的错误和异常,从而简化了数据库对象的管理和使用,提高数据库对象的准确性。
其中,通过确定数据库间的共性信息,构建数据库实体,以提供屏蔽数据库实体差异的实体封装结构,该实体结构抽象描述各数据库类型中实体结构的共性。
以表为例,数据库对象(DatabaseObject,DBO)封装了字段和索引实体,字段实体中包含字段类型属性,DBO抽象了各数据库公共的最常用的类型。各数据库类型与DBO的字段类型有一个映射关系,该映射关系通过配置文件设置,来描述不同数据库类型之间数据类型的差异。不同的数据库对象继承自同一数据库对象基类,它描述了各类数据库对象的基础描述信息。创建时,根据所选的数据库对象类型,调用数据库对象接口,生成数据库对象实体,保存为文件。维护时,提供获取数据库对象列表及单个数据库对象详细信息接口,根据数据库对象类型,加载相应的维护界面进行修改。修改完成后调用保存接口进行保存。
创建和维护DBO的主要接口定义如下表1所示:
表1
然后,通过描述不同数据库之间的差异信息对数据库实体进行扩展配置,例如,各个环境租户的信息有所不同,该配置为DBO实体描述与各数据库中对象的映射关系。本发明实例提供的实体封装结构是对各数据库类型的对象的抽象,部分对象与数据库中具体的对象存在映射关系,该映射关系通过扩展配置来实现。包括但不限于字段类型映射关系、数据库系统函数映射关系等。部署过程中,用到具体字段类型和系统函数时,根据上下文中数据库类型读取相应的值,构造实体生成SQL。
在本发明一个实施例中,所述更新所述数据库对象,包括:根据用户输入的指令信息,确定所述差异信息所对应的目标数据库;确定是否存在所述目标数据库的目标数据库对象与SQL文件的关联信息,如果是,根据所述SQL文件中的SQL语句,更新所述数据库对象。
在本发明一个实施例中,当不存在所述关联信息时,进一步包括:根据所述目标数据库对象的属性信息,利用预设规则调整所述目标数据库对象;其中,所述预设规则包括以下任意一个或多个:多语、对象名称规则、主键名、租户隔离策略、是否启用时间戳字段;
确定是否存在历史数据库对象,如果是,利用实体识别框架识别历史数据库对象与所述目标数据库对象之间的差异,并根据所述差异生成增量SQL;
利用所述增量SQL更新所述数据库对象。
其中,目标数据库可以是更新数据库时用户通过指令信息所指明的,例如,针对时间戳类型,在sql server数据使用DateTime,在PostgresSql中使用TimeStamp。当前数据库为sql server时,生成sql时就使用datetime。
在上述实施例中,通过与第三方工具集成,例如,该第三方工具可以为EFCore,从而实现自动识别增量,生成增量SQL,更新环境中的数据库对象。也就是说,在数据库实体的部署过程与第三方工具集成,将DBO实体转成第三方工具识别的实体,即可通过该工具自动识别增量,生成SQL。其中,各数据库中共性的内容有DBO统一构造实体,各数据库之间差异较大的,需要各数据库实现扩展接口,自己构造,如SQL Server数据库中索引是否为聚集索引等。
在生成增量SQL时,可根据历史数据库对象与目标数据库对象之间的差异来生成,例如,当前数据库对象描述为A,调整过的描述为A1,如果数据库对象之前部署过,环境中会存在老的描述B,B也需要进行调整,生成B1。A1和B1对比生成增量SQL,如果不存在B,则A1通过实体框架生成创建SQL。
生成SQL的过程由各数据库官方发布驱动生成,可保证SQL的正确性。部署过程包括创建数据库对象和更新数据库对象两种场景:
(1)当不存在目标数据库实体时,需创建数据库实体:根据DBO属性信息,根据当前上下文信息调整实体结构为最终对应对象的实体结构。根据各数据库差异配置,构造第三方工具识别的实体结构,调用接口生成创建SQL。调用数据库对象接口将DBO保存在运行时统一位置。
(2)当存在目标数据库实体时,需对数据库实体进行更新:通过DBO接口获取运行时DBO,判断数据库中对象是否存在。如果都存在,检查变更是否兼容,保证变更不会对环境中已有的数据造成影响。随后调用获取DBO增量方法,根据DBO属性及上下文,调整当前DBO和历史DBO实体结构,根据各数据库差异配置,构造第三方工具识别的实体结构,调用接口生成目标SQL,然后执行并保存目标SQL。
在部署过程中,提供的接口可如表2所示:
表2
值得一提的是,本发明实施例提供的数据库实体的部署方法还支持国际化,也就是说,DBO可启用多语,启用多语后,字段可设置为多语字段。在DBO维护界面,将DBO的是否启用多语设置为true,设置为true之后字段可以设置为多语字段。部署过程中,构造生成SQL的第三方软件识别的实体时,根据环境支持的语言,生成带相应语言后缀的多语列,生成的SQL中包含多语字段的创建SQL。运行时存取数据时调用当前语言环境下的字段名,如果字段启用多语,则DBO根据原有字段名和当前环境语言生成带语言后缀的字段名,用于生成存取数据的SQL;否则,直接返回原有字段名。同时,DBO提供新支持一种语言时,对所有启用多语的表生成新语言的多语字段的接口。
在此过程中,主要接口如下表3所示:
表3
以第三方工具为EFCore为例,对发明实施例提供的数据库实体的部署方法进行详细说明,如图2所示,该方法可以包括以下步骤,该过程所对应的数据库对象部署序列图如图3所示。
步骤201:构建DBO文件。
该DBO文件为根据数据库的共性信息所抽象出来的。
步骤202:生成前事件,根据环境租户信息调整DBO文件。
环境租户信息会有所不同,这体现出各个数据库之间的差异信息,因此根据差异信息调整DBO文件。
步骤203:判断是否存在DBO与SQL文件的关联信息,如果是,执行步骤208,否则执行步骤204。
步骤204:获取数据库中的DBO。
步骤205:判断是否存在DBO,如果是,执行步骤206,否则执行步骤207。
步骤206:根据DBO属性调整实体,通过EFCore框架识别变更,生成增量SQL,根据增量SQL生成历史表对比SQL,并执行步骤208。
步骤207:根据DBO属性调整实体,构造EFCore识别的实体结构,根利用多语段字段创建目标SQL,生成历史表创建目标SQL。
步骤208:执行SQL,以更新数据库DBO。
在本发明一个实施例中,DBO开发期以文件方式存放,可借用第三方文件管理系统进行分支版本管理,也就是说,在开发期,以文件方式存放所述共性信息和/或所述数据库实体。
以文件方式存放的结构化描述,可以与git或者tfs等当前已比较成熟的文件管理系统集成,也可以根据自己的使用习惯选择合适的第三方软件进行管理。借用现代化的管理方式,可快速定位变更及修改人员,如果发现问题可快速定位回滚,有效的解决了多人开发场景下,修改覆盖问题。
另外,在本发明实施例中,还提供对数据库类型的扩展机制,当存在新增数据库描述和/或增量SQL时,进一步包括:更新数据库描述与所述数据库对象之间的映射关系。
也就是说,DBO支持的数据库类型可扩展,提供扩展接口,当新增加一种新的数据库类型时,实现扩展接口,完善DBO实体与各数据库对象映射关系文档,添加第三工具中该种数据库的驱动,即可支持该数据库类型对象的创建和更新。通过该方式,可满足不同的用户对不同数据库的需求。
在上述过程中,主要扩展接口可如下表4所示:
表4
另外,本发明实施例提供的数据库对象的部署方法还提供对象名扩展机制,根据上下文生成对象名,支持一份对象描述,多个实际对象。
首先定义所需维度信息。进入维度信息维护界面,调用DBO获取维度信息接口,加载当前用户可见的所有维度,如果没有用户所需的维度,点击新增维度,编辑维度信息,点击保存按钮,调用DBO保存维度信息接口进行保存。
然后自定义对象名称规则。进入对象名称规则界面,调DBO获取对象名称规则接口,加载当前用户可见的对象名称规则列表。如果没有用户所需的对象名称规则,点击新增按钮,新增一条对象名称规则,关联所需的维度信息,点击保存按钮,调用DBO保存对象名称规则的接口进行保存。
随后在DBO维护界面关联对象名称规则。在DBO维护界面,点击设置对象名称规则,在弹出的对象名称规则选择界面,选择所需的规则,点击确定,保存。
部署时,判断DBO是否设置了对象名称规则,如果设置了,根据对象名称规则信息调用表名规则的扩展实现,根据当前上下文中的维度值和扩展逻辑,构造出数据库对象的实际名称,包括表名、主键名、约束名、索引名等。
运行时存取数据时,需调用DBO的接口获取表名等,根据获取的表名和字段名生成SQL进行存取数据。调用获取表名的接口,DBO会去判断DBO是否设置对象名称规则,如果设置了对象名称规则,跟据DBO记录的规则信息调用其扩展接口,根据上下文生成表名。
同时,DBO提供根据规则标识和相应维度值,部署当前所有设置该维度值的DBO的方法。
在该过程中,主要接口可如下表5所示:
表5
综上所述,在本发明实施例中,通过确定数据库的共性信息,构建数据库对象,然后根据数据库的差异信息,构建映射关系,然后根据映射关系,配置数据库对象的扩展信息,最后根据配置后的扩展信息,更新数据库对象。由此,通过提供屏蔽数据库差异的实体描述结构,减少了数据库对象维护的工作量,使得数据库对象管理的透明且可视,解决了以往通过SQL进行管理的复杂度和专业性要求高的问题,并且本发明实施例提供了自动识别实体结构变更的部署方式以及现代化的版本分支管理,减少了人为因素引发的错误和异常,从而简化了数据库对象的管理和使用,提高数据库对象的准确性。其中,数据库对象的生命周期可如图4所示。
如图5所示,本发明实施例还提供了一种数据库对象的部署装置,包括:实体构建模块501、确定模块502和更新模块503;其中,
所述实体构建模块501,用于确定至少两个数据库所对应的共性信息,根据所述共性信息,构建数据库对象;
所述确定模块502,用于确定所述至少两个数据库所对应的差异信息,构建所述差异信息与每一个所述数据库的映射关系;
所述更新模块503,用于根据所述差异信息以及所述映射关系,分别配置所述数据库对象的扩展信息;根据配置后的所述扩展信息,更新所述数据库对象。
在本发明一个实施例中,所述更新模块503,用于根据用户输入的指令信息,确定所述差异信息所对应的目标数据库;确定是否存在所述目标数据库的目标数据库对象与SQL文件的关联信息,如果是,根据所述SQL文件中的SQL语句,更新所述数据库对象。
在本发明一个实施例中,所述更新模块503,当不存在所述关联信息时,进一步用于根据所述目标数据库对象的属性信息,利用预设规则调整所述目标数据库对象;其中,所述预设规则包括以下任意一个或多个:多语、对象名称规则、主键名、租户隔离策略、是否启用时间戳字段;确定是否存在历史数据库对象,如果是,利用实体识别框架识别历史数据库对象与所述目标数据库对象之间的差异,并根据所述差异生成增量SQL,利用所述增量SQL更新所述数据库对象。
在本发明一个实施例中,所述更新模块503,用于当不存在所述目标数据库对象时,进一步用于利用所述实体识别框架构造数据库对象,根据构造的所述数据库对象创建目标SQL,根据所述目标SQL更新所述数据库对象;
在本发明一个实施例中,所述更新模块,进一步用于当存在新增数据库描述和/或增量SQL时,更新数据库描述与所述数据库对象之间的映射关系。
上述装置内的各单元之间的信息交互、执行过程等内容,由于与本发明方法实施例基于同一构思,具体内容可参见本发明方法实施例中的叙述,此处不再赘述。
本发明实施例提供了一种可读介质,包括执行指令,当存储控制器的处理器执行所述执行指令时,所述存储控制器执行本发明上述任一实施例提供的方法。
本发明实施例提供了一种存储控制器,包括:处理器、存储器和总线;所述存储器用于存储执行指令,所述处理器与所述存储器通过所述总线连接,当所述存储控制器运行时,所述处理器执行所述存储器存储的所述执行指令,以使所述存储控制器执行本发明上述任一实施例提供的方法。
综上所述,本发明以上各个实施例至少具有如下有益效果:
1、在本发明实施例中,通过确定数据库的共性信息,构建数据库对象,然后根据数据库的差异信息,构建映射关系,然后根据映射关系,配置数据库对象的扩展信息,最后根据配置后的扩展信息,更新数据库对象。由此,通过提供屏蔽数据库差异的实体描述结构,减少了数据库对象维护的工作量,使得数据库对象管理的透明且可视,解决了以往通过SQL进行管理的复杂度和专业性要求高的问题。
2、本发明实施例提供了自动识别实体结构变更的部署方式以及现代化的版本分支管理,减少了人为因素引发的错误和异常,从而简化了数据库对象的管理和使用,提高数据库对象的准确性。
3、在本发明实施例中,与第三方工具集成,自动识别增量,生成增量SQL,更新环境中数据库对象,保证数据结构正确性。
4、在本发明实施例中,提供对数据库类型提供扩展机制,满足用户对多样数据库的需求。
5、在本发明实施例中,提供对象名扩展机制,根据上下文生成对象名,支持一份对象描述多个实际对象,并且支持国际化,根据环境支持语言生成相应语言的多语列,有利于提高用户体验。
需要说明的是,在本文中,诸如第一和第二之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个······”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同因素。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储在计算机可读取的存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质中。
最后需要说明的是:以上所述仅为本发明的较佳实施例,仅用于说明本发明的技术方案,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所做的任何修改、等同替换、改进等,均包含在本发明的保护范围内。
Claims (2)
1.一种数据库对象的部署方法,其特征在于,包括:
确定至少两个数据库所对应的共性信息,根据所述共性信息,构建数据库对象;
确定所述至少两个数据库所对应的差异信息,构建所述差异信息与每一个所述数据库的映射关系;
根据所述差异信息以及所述映射关系,分别配置所述数据库对象的扩展信息;
根据配置后的所述扩展信息,更新所述数据库对象;
所述更新所述数据库对象,包括:
根据用户输入的指令信息,确定所述差异信息所对应的目标数据库;
确定是否存在所述目标数据库的目标数据库对象与SQL文件的关联信息,如果是,根据所述SQL文件中的SQL语句,更新所述数据库对象;
当不存在所述关联信息时,进一步包括:
根据所述目标数据库对象的属性信息,利用预设规则调整所述目标数据库对象;其中,所述预设规则包括以下任意一个或多个:多语、对象名称规则、主键名、租户隔离策略、是否启用时间戳字段;
确定是否存在历史数据库对象,如果是,利用实体识别框架识别历史数据库对象与所述目标数据库对象之间的差异,并根据所述差异生成增量SQL;
利用所述增量SQL更新所述数据库对象;
当不存在所述目标数据库对象时,进一步包括:
利用所述实体识别框架构造数据库对象;
根据构造的所述数据库对象创建目标SQL,根据所述目标SQL更新所述数据库对象;
进一步包括:
以文件方式存放所述共性信息和/或所述数据库对象;
当存在新增数据库描述和/或增量SQL时,进一步包括:
更新数据库描述与所述数据库对象之间的映射关系。
2.一种数据库对象的部署装置,其特征在于,包括:实体构建模块、确定模块和更新模块;其中,
所述实体构建模块,用于确定至少两个数据库所对应的共性信息,根据所述共性信息,构建数据库对象;
所述确定模块,用于确定所述至少两个数据库所对应的差异信息,构建所述差异信息与每一个所述数据库的映射关系;
所述更新模块,用于根据所述差异信息以及所述映射关系,分别配置所述数据库对象的扩展信息;根据配置后的所述扩展信息,更新所述数据库对象;
所述更新模块,用于根据用户输入的指令信息,确定所述差异信息所对应的目标数据库;确定是否存在所述目标数据库的目标数据库对象与SQL文件的关联信息,如果是,根据所述SQL文件中的SQL语句,更新所述数据库对象;
所述更新模块,当不存在所述关联信息时,进一步用于根据所述目标数据库对象的属性信息,利用预设规则调整所述目标数据库对象;其中,所述预设规则包括以下任意一个或多个:多语、对象名称规则、主键名、租户隔离策略、是否启用时间戳字段;确定是否存在历史数据库对象,如果是,利用实体识别框架识别历史数据库对象与所述目标数据库对象之间的差异,并根据所述差异生成增量SQL,利用所述增量SQL更新所述数据库对象;
所述更新模块,用于当不存在所述目标数据库对象时,进一步用于利用所述实体识别框架构造数据库对象,根据构造的所述数据库对象创建目标SQL,根据所述目标SQL更新所述数据库对象;
和/或,
所述更新模块,进一步用于当存在新增数据库描述和/或增量SQL时,更新数据库描述与所述数据库对象之间的映射关系。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910790797.2A CN110489401B (zh) | 2019-08-26 | 2019-08-26 | 一种数据库对象的部署方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910790797.2A CN110489401B (zh) | 2019-08-26 | 2019-08-26 | 一种数据库对象的部署方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110489401A CN110489401A (zh) | 2019-11-22 |
CN110489401B true CN110489401B (zh) | 2022-12-27 |
Family
ID=68554238
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910790797.2A Active CN110489401B (zh) | 2019-08-26 | 2019-08-26 | 一种数据库对象的部署方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110489401B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113886404A (zh) * | 2020-07-03 | 2022-01-04 | 北京达佳互联信息技术有限公司 | 更新数据的方法、装置、电子设备和存储介质 |
CN112905624B (zh) * | 2021-02-26 | 2023-01-20 | 浪潮通用软件有限公司 | 一种低代码开发平台的数据库扩展方法及设备 |
CN115080003A (zh) * | 2022-06-10 | 2022-09-20 | 北京达佳互联信息技术有限公司 | 零代码平台的运行方法、装置、电子设备及存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102841889A (zh) * | 2011-06-20 | 2012-12-26 | 中兴通讯股份有限公司 | 一种基于orm架构的高效数据库访问的实现方法及装置 |
CN106446151A (zh) * | 2016-09-22 | 2017-02-22 | 山东浪潮云服务信息科技有限公司 | 一种基于国产cpu和数据库的数据迁移及增量更新方法 |
US20180357293A2 (en) * | 2016-01-13 | 2018-12-13 | American Express Travel Related Services Co., Inc. | System and method for managing data and updates to a database structure |
CN109522295A (zh) * | 2018-11-16 | 2019-03-26 | 中国银行股份有限公司 | 一种数据库对象自动构建、部署方法及装置 |
-
2019
- 2019-08-26 CN CN201910790797.2A patent/CN110489401B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102841889A (zh) * | 2011-06-20 | 2012-12-26 | 中兴通讯股份有限公司 | 一种基于orm架构的高效数据库访问的实现方法及装置 |
US20180357293A2 (en) * | 2016-01-13 | 2018-12-13 | American Express Travel Related Services Co., Inc. | System and method for managing data and updates to a database structure |
CN106446151A (zh) * | 2016-09-22 | 2017-02-22 | 山东浪潮云服务信息科技有限公司 | 一种基于国产cpu和数据库的数据迁移及增量更新方法 |
CN109522295A (zh) * | 2018-11-16 | 2019-03-26 | 中国银行股份有限公司 | 一种数据库对象自动构建、部署方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN110489401A (zh) | 2019-11-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9830341B2 (en) | Resource name generation and derivation utilizing attribute space monikers and their associated context | |
CN106598612B (zh) | 一种数据库中数据表的操作方法及系统 | |
US8739116B2 (en) | Development environment configured to generate application source code from database objects | |
US8495564B2 (en) | Automated merging in a software development environment | |
US8307015B2 (en) | Decorated model architecture for efficient model-driven application development | |
CN110489401B (zh) | 一种数据库对象的部署方法及装置 | |
US20160170719A1 (en) | Software database system and process of building and operating the same | |
US20120266131A1 (en) | Automatic program generation device, method, and computer program | |
US20090276784A1 (en) | Resource management method | |
US9483508B1 (en) | Omega names: name generation and derivation | |
CN110019111B (zh) | 数据处理方法、装置、存储介质以及处理器 | |
JPWO2011118003A1 (ja) | ウェブアプリケーション構築システム、ウェブアプリケーション構築方法、ウェブアプリケーション構築プログラムおよびウェブアプリケーション構築プログラムを記録した記録媒体 | |
WO2021022703A1 (zh) | 软件项目重构方法、装置、计算机装置及存储介质 | |
CN103984554A (zh) | 软件设计文档的生成方法及装置 | |
EP1909170B1 (en) | Method and system for automatically generating a communication interface | |
CN112698819A (zh) | 面向树化对象编程程序设计方法、装置及存储介质 | |
CN108334333B (zh) | 一种源代码库更新方法及装置 | |
TW201324347A (zh) | 功能模組命令管理系統及方法 | |
US20080270985A1 (en) | Database application assembly and preparation | |
US20080022258A1 (en) | Custom database system and method of building and operating the same | |
US20100070954A1 (en) | Custom database system and method of building and operating the same | |
CN112817931A (zh) | 一种增量版本文件的生成方法及装置 | |
US11947931B2 (en) | Generic factory class | |
KR101975998B1 (ko) | Sql 구문 기반의 데이터 이관 장치 및 방법 | |
JP5190899B2 (ja) | 情報処理装置、設定ファイル生成方法、および設定ファイル生成プログラム |
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 |