[发明专利]一种大型系统的数据库版本迁移方法在审
申请号: | 201711077111.2 | 申请日: | 2017-11-06 |
公开(公告)号: | CN107861737A | 公开(公告)日: | 2018-03-30 |
发明(设计)人: | 熊梦;季统凯 | 申请(专利权)人: | 国云科技股份有限公司 |
主分类号: | G06F8/65 | 分类号: | G06F8/65;G06F8/71;G06F17/30 |
代理公司: | 北京科亿知识产权代理事务所(普通合伙)11350 | 代理人: | 汤东凤 |
地址: | 523808 广东省东*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 大型 系统 数据库 版本 迁移 方法 | ||
技术领域
本发明涉及软件版本升级技术领域,特别是一种大型系统的数据库版本迁移方法。
背景技术
随着软件系统的功能越来越强大,相应的其复杂度也会越来越大。特别的,软件系统在整个生命周期内需要不断的升级,有时候根据实际需要也需要从高级版本降低到更低版本。系统的每一层升降级都会带来很大的工作量,尤其是当系统是一个异构多组件系统时,其升降级难度和复杂度会非常大。
在一个大型系统的版本升级过程中,最主要的也是最常见的升级就是数据库版本的变更,特别的,当一个大型系统是由多个组件组成,每个组件由不同的开发团队负责时,数据库的版本变更就变得非常的难以控制。
发明内容
本发明解决的技术问题在于提出一种大型系统的数据库版本迁移方法,实现对系统版本升级过程中系统数据库版本的有效管理,简化升降级版本的复杂度和难度。
本发明解决上述技术问题的技术方案是:
所述的方法包括如下步骤:
(1)定义各组件数据库版本迁移文件;包括设置迁移文件的文件名格式和内容格式;
(2)新增各组件数据库中版本迁移数据表;
(3)迁移子程序读取配置文件,获取组件数据库连接属性,包括组件数据库所在服务器IP、端口号,登录组件数据库的用户名和密码;
(4)读取组建数据库gc_db_version版本表,根据组件数据库名字读取当前版本,如果获取不到当前版本号,则返回默认版本0;
(5)根据当前版本和参数传递的目标版本从数据库版本迁移文件目录中获取需要执行的版本迁移文件列表;
(6)依次执行版本迁移文件,记录执行后的响应输出;如果执行成功,则将文件名添加到成功文件数组里,同时向gc_db_migrate_log表写入迁移记录;
(7)如果中途版本执行出现错误,则记录错误,然后根据成功的文件数组获取回滚的数组,并且执行回滚操作,同时向gc_db_migrate_log表写入迁移记录;
(8)当版本迁移文件列表全部成功执行完之后,更新gc_db_version版本号为本次目标版本号。
所述的设置迁移文件的文件名格式和内容格式如下:
(11)数据库版本迁移文件文件名格式设置,包括如下设置:
升级变更记录文件,格式:版本_up_数据库名#备注.sql;
降级变更记录文件,格式:版本_down_数据库名#备注.sql。
(12)数据库版本迁移文件文件内容格式设置,包括如下设置:
以注释的方式记录每一次增加变更记录的变更日期、变更人、变更内容描述;
以SQL语句的形式定义数据库表结构及表数据的变更;
所述每一次增加变更记录都必须同时增加升级变更记录文件和降级变更记录文件,且文件名版本一致,文件内容中数据库SQL变更脚本相对。
所述新增各组件数据库中版本迁移数据表包括:
(21)gc_db_version版本表,用于记录组件数据库当前版本,包括组件数据库名称字段和版本字段;
(22)gc_db_migrate_log数据库版本迁移日志表,用于记录组件数据库版本迁移历史记录,主要包括UUID字段,数据库版本迁移文件文件名字段,版本字段,迁移类型字段,迁移结果字段,迁移错误码字段,迁移时间字段。
所述迁移子程序是一个通用的独立于大型系统的单独程序,可以是用java编写的一个可执行jar包文件程序;
所述迁移子程序的配置文件指定组件数据库版本迁移文件所在地址目录。
所述数据库版本迁移包括数据表的增加、删除和修改,数据表结构字段的增加、删除和修改,数据表内容记录的增加、删除和修改。
本发明方案的有益效果如下:
1、本发明方法提供一个统一的变更方法,可以有效的降低大型软件系统(尤其是多组件多团队开发的大型异构系统)数据库版本变更过程中的难度和复杂度。
2、本发明提供一种大型系统的数据库版本迁移方法,具有通用性且实现简单,独立于大型系统本身,可以被大型系统开发团队集成实现。
附图说明
下面结合附图对本发明进一步说明:
图1为本发明方法的流程图;
图2为本发明方法的另一个子流程图。
具体实施方式
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于国云科技股份有限公司,未经国云科技股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201711077111.2/2.html,转载请声明来源钻瓜专利网。