[发明专利]一种数据库持续部署的方法和设备有效
申请号: | 202011006517.3 | 申请日: | 2020-09-23 |
公开(公告)号: | CN112130891B | 公开(公告)日: | 2021-06-29 |
发明(设计)人: | 王新义 | 申请(专利权)人: | 上海逸迅信息科技有限公司 |
主分类号: | G06F8/71 | 分类号: | G06F8/71;G06F8/65;G06F16/16 |
代理公司: | 北京睿博行远知识产权代理有限公司 11297 | 代理人: | 龚家骅 |
地址: | 201203 上海市浦东新区中国(上海)自*** | 国省代码: | 上海;31 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 数据库 持续 部署 方法 设备 | ||
1.一种数据库持续部署的方法,其特征在于,所述方法包括:
根据数据库部署需求从预设版本库中获取指定数据库脚本,所述部署需求包括新增部署和升级部署,所述指定数据库脚本带有与对应的软件代码的版本号一致的指定版本号;
根据所述指定数据库脚本在物理的目标数据库中构建对应的指定脚本文件;
若所述数据库部署需求为所述升级部署,根据所述指定脚本文件和当前脚本文件生成变更数据库脚本,所述当前脚本文件为所述目标数据库中与当前软件版本的数据库脚本对应的脚本文件;
根据所述变更数据库脚本在所述目标数据库中构建变更脚本文件,并基于所述变更脚本文件变更所述当前脚本文件;
其中,在根据数据库部署需求从预设版本库中获取带有指定版本号的指定数据库脚本之前,所述方法还包括:
根据软件开发数据库的元数据配置发布策略,所述发布策略包括数据库对象的发布策略和数据的发布策略;
根据所述发布策略生成数据库的数据定义语言和数据操纵语言;
导出所述数据定义语言和所述数据操纵语言生成导出数据库脚本,
基于在所述导出数据库脚本中添加所述指定版本号生成所述指定数据库脚本,并将所述指定数据库脚本保存到所述预设版本库;
其中,在根据所述指定数据库脚本在物理的目标数据库中构建对应的指定脚本文件之后,所述方法还包括:
若所述数据库部署需求为所述新增部署,将所述指定脚本文件作为与所述指定版本号对应的数据库脚本文件。
2.如权利要求1所述的方法,其特征在于,根据所述指定脚本文件和当前脚本文件生成变更数据库脚本,具体为:
基于对所述指定脚本文件和所述当前脚本文件进行对象列表比对确定第一结果;
基于对所述指定脚本文件和所述当前脚本文件进行对象比对确定第二结果;
基于对所述指定脚本文件和所述当前脚本文件进行数据比对确定第三结果;
根据所述第一结果、所述第二结果和所述第三结果生成所述变更数据库脚本。
3.如权利要求2所述的方法,其特征在于,基于对所述指定脚本文件和所述当前脚本文件进行对象列表比对确定第一结果,具体为:
根据所述指定脚本文件中的第一待比对对象列表确定第一对象集合;
根据所述当前脚本文件中与所述第一待比对对象列表对应的第二待比对对象列表确定第二对象集合;
根据所述第一对象集合和所述第二对象集合的比对结果确定所述第一结果,其中,
若所述第一对象集合相对于所述第二对象集合存在新增的对象,将所述新增的对象的发布脚本平移至所述变更数据库脚本中;
若所述第一对象集合相对于所述第二对象集合存在删减的对象,不做处理;
若所述第一对象集合相对于所述第二对象集合存在一致的对象,对各所述一致的对象进行对象比对。
4.如权利要求2所述的方法,其特征在于,基于对所述指定脚本文件和所述当前脚本文件进行对象比对确定第二结果,具体为:
根据所述指定脚本文件的第一待比对对象确定第一对象属性集合;
根据所述当前脚本文件中与所述第一待比对对象对应的第二待比对对象确定第二对象属性集合;
根据所述第一对象属性集合和所述第二对象属性集合的比对结果确定所述第二结果,其中,
若所述第一对象属性集合相对于所述第二对象属性集合存在新增的属性,基于所述新增的属性生成第一alert语句;
若所述第一对象属性集合相对于所述第二对象属性集合存在删减的属性,基于所述删减的属性生成第二alert语句;
若所述第一对象属性集合相对于所述第二对象属性集合存在一致的属性,不做处理。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于上海逸迅信息科技有限公司,未经上海逸迅信息科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202011006517.3/1.html,转载请声明来源钻瓜专利网。