一种适用于应用程序数据库表数据版本切换的方法

文档序号:9865622阅读:550来源:国知局
一种适用于应用程序数据库表数据版本切换的方法
【技术领域】
[0001]本发明涉及应用程序数据库管理技术领域,特别是一种适用于应用程序数据库表数据版本切换的方法。
【背景技术】
[0002]在一些软件系统开发的项目测试阶段中,系统中的数据库通常已经有很多表和数据,而测试工程师每天都需要执行对数据库表数据版本更新操作。通常都是手工执行一条或者多条执行结构化查询语言SQL文件或语句,有时候发现当前版本不可用时需要对数据库表数据进行降级,这个时候同样也需要执行一条或者多条执行结构化查询语言SQL文件或语句,而且升级和降级的语句或sql文件是不一样的,带来以下问题:
[0003]—是手工执行容易出错,SQL文件或语句的执行通常是有先后顺序,要按照一定的顺序执行,而且很容易出现遗漏执行文件。
[0004]二是若跨多个版本的降级,开发工程师编写这些SQL文件或者语句所需要的工作量大,效率低;
[0005]三是SQL文件或者语句存放的目录不统一,难以进行统一的管理,版本管理员人员要通过查询版本记录才能定位具体某个版本数据库表数据到底做了什么变更。
[0006]为了避免人为执行的出错,减轻测试工程师对数据库表数据版本切换的工作复杂度,开发工程师只需要专注当前数据库表数据版本的升级或者降级方法,需要有一种适用于应用程序数据库表数据版本切换的方法,用户只需要简单执行一条命令就能实现数据库表数据版本升级或降级操作。

【发明内容】

[0007]本发明解决的技术问题在于提供一种适用于应用程序数据库表数据版本切换的方法,解决人为应用程序数据库表数据版本执行容易出错、测试工程师执行数据库表数据版本切换工作繁琐又复杂、开发工程师开发跨多个版本切换的SQL文件或语句工作量复杂、SQL文件或语句管理不够统一等问题。
[0008]本发明解决上述技术问题的技术方案是:
[0009]包括如下步骤:
[0010]步骤1:调用数据库表数据版本切换命令;
[0011 ]步骤2:加载数据库脚本语言文件列表;
[0012]步骤3:分析文件列表并获取最新的版本;
[0013]步骤4:获取当前数据库表数据的版本;
[0014]步骤5:分析命令中的参数是否包含版本参数,若包括则执行步骤7,若不包括执行步骤6;
[0015]步骤6:设置需要切换版本为最新版本;
[0016]步骤7:若需要切换版本小于当前数据库表数据版本则执行步骤8;若需要切换版本大于当前数据库表数据版本则执行步骤9;若需要切换版本等于当前数据库表数据版本则执行步骤10;
[0017]步骤8:执行数据库表数据版本降级;执行步骤11;
[0018]步骤9:执行数据库表数据版本升级;执行步骤11;
[0019]步骤10:不需要做任何操作;
[0020]步骤11:完成。
[0021]所述调用数据库表数据版本切换命令的命令只需要至多一个参数:需要切换版本,也可以不提供任何参数。
[0022]所述的加载数据库脚本语言文件列表是加载指定路径下所有的文件列表,而这些文件格式是NUM_XXX_YYY_ZZZ.py;其中NUM是数据库表数据库的版本,NUM由数字组成,如001(表示第I个版本)、0133(表示第133个版本)、3244(表示第3244个版本)等;XXX、YYY、ZZZ是用户自定义的英文或数字组成的字符串。每个.py文件只包括升级和降级两个方法,并且所有文件的升级方法和降级方法的命名是一样的;
[0023]所述的.py格式的文件,是Python编程脚本语言的格式文件;
[0024]所述的Python,是一种面向对象、解释型计算机程序设计语言,不需要编译就能直接执行的脚本语言。
[0025 ]所述的分析文件列表并获取最新的版本,是从文件列表中的文件名称解释出每个文件对应的版本号,最大的版本号就是最新的版本;
[0026]所述的获取当前数据库表数据的版本是从数据库表数据中查询出该数据库表数据的版本。
[0027]所述的分析命令中的参数是否包含版本参数,是解释用户调用的命令行中是否包括版本参数,若是则解释其值并设置需要切换版本为其值;若否则执行下一步。
[0028]所述的设置需要切换版本为最新版本,设置需要切换版本为最新的版本,也就是文件列表中分析出最新的版本。
[0029]所述的步骤7时比较需要切换版本与当前数据库表数据版本大小,然后选择升级、降级或不做任何操作。
[0030]所述的执行数据库表数据版本降级,是按当前数据库表数据版本、需要切换版本顺序,执行从高版本到低版本的数据库脚本语言文件的降级方法,完成版本切换流程;所述的降级方法,通常是通过删除表、删除表结构字段、设置某字段为默认值、变更字段的长度或类型等,也有较少的情况是增加表、增加表结构字段;
[0031]所述的执行数据库表数据版本升级,是按当前数据库表数据版本、需要切换版本顺序,执行从低版本到高版本的数据库脚本语言文件的升级方法,完成版本切换流程;所述的升级方法通常是增加表、增加表结构字段、设置某字段为默认值、变更字段的长度或类型等,也有较少的情况是删除表、删除表结构字段。
[0032]本发明通过适用于应用程序数据库表数据版本切换的方法,解决人为应用程序数据库表数据版本执行容易出错、测试工程师执行数据库表数据版本切换工作繁琐又复杂、开发工程师开发跨多个版本切换的SQL文件或语句工作量复杂、SQL文件或语句管理不够统一等问题,用户执行版本切换只需要执行一条简单的命令。本发明是一种技术框架,区别于一般的数据库表数据版本切换的方法;本发明主要通过SQLAlchemy工具及其语法来达到目的,区别于一般的数据库表数据版本切换;本发明除了能够实现常用的数据库表数据版本升级,还能实现数据库表数据版本降级,区域一般的数据库表数据版本切换的方法不能实现数据版本降级;本发明只需要用户执行一个简单的命令,区别于其他数据库表数据版本切换需要执行多步操作。
【附图说明】
[0033]下面结合附图对本发明进一步说明:
[0034]图1为流程图;
[0035]图2为本发明数据库脚本语言文件示例结构图。
【具体实施方式】
[0036]本发明的实施方式有多种,这里以云平台为例说明其中一种实现方法,如图1、2所示,具体实施过程如下:
[0037]1、调用数据库表数据版本切换命令;
[0038]如执行命令:dbsync027
[0039]其中027表示:需要切换版本为第27个版本
[0040]2、加载数据库脚本语言文件列表;
[0041]"'
[0042]加载数据库脚本语言文件列表.
[0043]Oparam path文件所在路径
[0044]ire turn无返回对象
[0045]'''
[0046]def load(self,path):
[0047]self.config.load(path)
[0048]3、分析文件列表并获取最新的版本;
[0049]"'
[0050]加载数据库脚本语言文件列表.[0051 ]Oparam file_list 文件列表
[0052]ire turn无返回对象
[0053]
[0054]def analyse(self,file_list):
[0055]self.config.analyse(file_list)
[0056]4、获取当前数据库表数据的版本;
[0057
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1