一种基于元数据管理实现数据库物理表变更的方法和系统与流程

文档序号:38026779发布日期:2024-05-17 13:02阅读:9来源:国知局
本发明涉及数据库,尤其涉及一种基于元数据管理实现数据库物理表变更的方法和系统。
背景技术
::1、在企业软件产品(如dms汽车经销商管理系统等)中,数据库物理表的创建,变更等缺乏相应的管理工具,同时,数据库物理表和软件代码中的实体类对象也没有建立映射关系,在开发中都是独立创建及维护。2、以dms软件开发为例,在一个迭代开发周期(一般一个月)中,设计人员通过pdm产品数据管理系统完成数据库设计,然后开发人员根据pdm手动提供数据库变更脚本到管理工具,而一个迭代周期的拉长,脚本变更变多,变更之前有先后顺序关系,同一物理表可能存在多次变更,,而脚本提交时往往缺乏相应的管理手段,导致物理表变更经常执行失败,同时物理表变更脚本依赖人为提交的方式,在较长的迭代周期内会存在脚本遗漏的情况,导致一次性发布成功率极低。并且在存在多个数据源时,需要手动针对每个数据源单独执行数据变更发布,效率较低。技术实现思路1、本发明的主要目的在于针对现有技术中需要依赖人工来识别提交变更脚本且数据表变更脚本存在遗漏、顺序不正确导致变更失败的缺点,提供一种基于元数据管理实现数据库物理表变更的方法和系统。2、为实现上述目的,本发明的一种基于元数据管理实现数据库物理表变更的方法,包括以下步骤:3、步骤100:获取变更的元数据对象、对象属性的配置参数;4、步骤200:识别提取元数据对象、对象属性的变更记录;5、步骤300:根据定义的元数据对象变更与数据库物理表变更之间的映射规则,将元数据对象的变更记录转换生成数据库物理表的变更脚本;6、步骤400:查找与元数据对象关联的数据源,执行变更脚本,对数据库物理表进行变更。7、优选地,所述步骤100中的元数据对象的配置参数包括对象名称、对象描述、所属项目、使用模板、是否可用、是否执行变更,对象属性的配置参数包括属性名称、属性描述、数据类型、字段长度、是否必填。8、优选地,所述步骤200包括:9、先比对当前变更的元数据对象与在先记录的元数据对象的对象名称是否一致,如不一致,则识别为新增、删除的元数据对象;10、如一致,则进一步比对当前变更的元数据对象的对象属性的属性名称与在先记录的对象名称一致的元数据对象的属性名称是否一致,如不一致,则识别为修改的元数据对象;11、提取新增、删除、修改的元数据对象的变更记录。12、优选地,所述步骤300包括:13、根据元数据对象的对象属性类型与数据库数据类型的映射关系:字符串映射varchar,大文本映射text,日期映射datetime,整数映射int,浮点数映射decimal;根据元数据对象的对象名称、对象属性与java代码实体类的映射关系:元数据对象名称映射实体类名,对象属性映射实体类属性;根据元数据对象新增、删除、修改与数据库物理表新增、删除、修改之间的映射规则:新增元数据对象映射create table xxx,修改元数据对象映射alter table xxx,删除元数据对象映射drop table xxx,通过逻辑组件将元数据对象的新增、删除、修改记录转换生成数据库物理表的新增、删除、修改脚本。14、优选地,所述步骤400包括:15、查找需要与元数据对象关联变更的数据源,获取数据源信息,数据源信息包括数据源名称、数据源ip地址、数据源端口、数据源类型、数据源实例名、数据源用户名、数据源密码,通过链接数据源ip地址、验证数据源用户名和数据源密码将数据库物理表的新增、删除、修改脚本运行环境切换到当前数据源,执行脚本进行数据库物理表变更。16、优选地,元数据对象的配置参数“使用模板”中的模板为标准的数据项模板或多套预先定义的数据项模板,数据项模板包括字段名称、字段描述、字段类型、字段长度数据项。17、优选地,所述步骤300之后还包括步骤301:18、对数据库物理表的变更脚本按时间范围进行查询,提取该段时间内记录的所有变更脚本,并进行版本标记。19、优选地,数据库物理表的新增、删除、修改脚本包括回滚脚本,当检测到有新增、删除、修改脚本执行异常,回滚脚本执行,查找之前执行成功的脚本,回滚所有的脚本操作。20、此外,为实现上述目的,本发明还提供一种基于元数据管理实现mysql数据库物理表变更的系统,包括:21、元数据对象定义单元、数据源列表单元和元数据变更单元;所述元数据对象定义单元对元数据对象和对象属性进行参数配置;所述元数据列表单元对数据源信息进行配置;所述元数据变更单元对元数据对象和对象属性进行变更识别,并提取变更记录,根据定义的元数据对象变更与数据库物理表变更之间的映射规则,将元数据对象的变更记录转换生成数据库物理表的变更脚本,根据与元数据对象关联的数据源信息执行变更脚本,进行数据库物理表的变更。22、优选地,还包括数据项模板单元和版本管理单元,所述数据项模板单元对标准的数据项模板或多套预备的数据项模板的数据项进行定义,所述版本管理单元按时间范围提取未执行脚本的变更记录,并对该段变更记录进行版本标记。23、本发明提供的一种基于元数据管理实现数据库物理表变更的方法具有以下有益效果:24、获取变更的元数据对象、对象属性的配置参数;根据数据库物理表的变更需求,从数据库物理表与元数据对象映射关系中逻辑分析获取对应变更需求的元数据对象、对象属性的配置参数,为后续识别提取元数据对象变更记录转换生成数据库物理表变更脚本提供原始映射数据来源;识别提取元数据对象、对象属性的变更记录;对最新的元数据对象与在先的元数据对象进行比对,确定是否元数据对象发生变更,识别发生变更,就提取变更记录,为后续数据库物理表变更脚本提供原始变更映射数据来源;根据定义的元数据对象变更与数据库物理表变更之间的映射规则,将元数据对象的变更记录转换生成数据库物理表的变更脚本;依照元数据对象与数据库物理表之间映射关系、映射规则,逻辑组件将元数据对象的配置参数转换成物理表数据属性,再结合逻辑控制程序转换生成变更脚本;查找与元数据对象关联的数据源,执行变更脚本,对数据库物理表进行变更;根据需求,通过数据源相关信息,验证通过后与需求关联的数据源连接,将变更脚本运行在需求变更的数据源环境上,实现数据库物理表的映射变更。技术特征:1.一种基于元数据管理实现数据库物理表变更的方法,其特征在于,包括以下步骤:2.如权利要求1所述的基于元数据管理实现数据库物理表变更的方法,其特征在于,所述步骤100中的元数据对象的配置参数包括对象名称、对象描述、所属项目、使用模板、是否可用、是否执行变更,对象属性的配置参数包括属性名称、属性描述、数据类型、字段长度、是否必填。3.如权利要求2所述的基于元数据管理实现数据库物理表变更的方法,其特征在于,所述步骤200包括:4.如权利要求3所述的基于元数据管理实现数据库物理表变更的方法,其特征在于,所述步骤300包括:5.如权利要求4所述的基于元数据管理实现数据库物理表变更的方法,其特征在于,所述步骤400包括:6.如权利要求2所述的基于元数据管理实现数据库物理表变更的方法,其特征在于,元数据对象的配置参数“使用模板”中的模板为标准的数据项模板或多套预先定义的数据项模板,数据项模板包括字段名称、字段描述、字段类型、字段长度数据项。7.如权利要求1所述的基于元数据管理实现数据库物理表变更的方法,其特征在于,所述步骤300之后还包括步骤301:8.如权利要求4所述的基于元数据管理实现数据库物理表变更的方法,其特征在于,数据库物理表的新增、删除、修改脚本包括回滚脚本,当检测到有新增、删除、修改脚本执行异常,回滚脚本执行,查找之前执行成功的脚本,回滚所有的脚本操作。9.一种基于元数据管理实现mysql数据库物理表变更的系统,其特征在于,包括:10.如权利要求9的基于元数据管理实现数据库物理表变更的系统,其特征在于,还包括数据项模板单元和版本管理单元,所述数据项模板单元对标准的数据项模板或多套预备的数据项模板的数据项进行定义,所述版本管理单元按时间范围提取未执行脚本的变更记录,并对该段变更记录进行版本标记。技术总结本发明公开了一种基于元数据管理实现数据库物理表变更的方法和系统,包括步骤100:获取变更的元数据对象、对象属性的配置参数;步骤200:识别提取元数据对象、对象属性的变更记录;步骤300:根据定义的元数据对象变更与数据库物理表变更之间的映射规则,将元数据对象的变更记录转换生成数据库物理表的变更脚本;步骤400:查找与元数据对象关联的数据源,执行变更脚本,对数据库物理表进行变更。本发明通过元数据管理实现了数据库物理表的变更,不需要开发人员手动编写变更脚本,也不存在因开发周期长出现的变更遗漏、脚本执行顺序不正确导致数据发布失败。技术研发人员:田灏受保护的技术使用者:深圳联友科技有限公司技术研发日:技术公布日:2024/5/16
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1