一种支持跨版本的数据库升级方法及装置制造方法及图纸

技术编号:16587522 阅读:32 留言:0更新日期:2017-11-18 15:08
本文公开了一种支持跨版本的数据库升级方法及装置,涉及程序升级技术。其中,本文公开的支持跨版本的数据库升级方法,包括:在指定位置建立结构化查询语言SQL文件夹,所述SQL文件夹用于顺序存储应用程序不同版本下数据库升级对应的SQL文件,在应用程序的数据库中创建升级记录表,用于记录已执行成功的SQL文件;当应用程序升级时,在所述SQL文件夹中追加本次应用程序升级时数据库升级对应的SQL文件;当应用程序升级后启动,遍历所述SQL文件夹中的所有SQL文件,从数据库中的升级记录表中查询出已执行成功的所有SQL文件,对比得到尚未执行的SQL文件;对尚未执行的SQL文件按照排序依次进行读取并执行操作。

Method and device for supporting cross version database upgrade

This paper presents a method and device to support cross version database upgrade, which involves program update technology. Among them, the updating method of public support across versions of the database include: the establishment of structured query language SQL folder in the specified location, the SQL folder for sequential storage application database upgrade under different versions of the corresponding SQL file, create an upgrade record in the application database, used to record the SQL file has been executed successfully; when the application upgrade, this additional application upgrade database upgrade to the corresponding SQL file in the SQL folder; when the application starts after the upgrade, all SQL files traversing the SQL folder in the SQL file has been successfully executed all from the database update record table, contrast have not been the implementation of the SQL file; the SQL file has not been executed in accordance with the order of read and execute the operation.

【技术实现步骤摘要】
一种支持跨版本的数据库升级方法及装置
本专利技术涉及程序升级技术,具体涉及一种支持跨版本的数据库升级方案。
技术介绍
程序升级是所有开发人员必须面对的问题,其中又包含文件升级和数据库升级等。对于数据库升级,处理起来比较麻烦,它不像文件升级那样,可以直接删除旧文件,添加新文件,因为旧的数据库中已存在的数据需要保留下来。目前市面上有一些较成熟的开发框架,提供了非常完善的数据库升级方案,开发人员只要按照规则开发,就可以轻松解决数据库升级的问题,但是这些框架一般较大,并不适合小型应用程序。亟待找到一种轻量级应用程序的数据库升级方案,既在升级的同时保留旧数据,又能支持跨版本升级。
技术实现思路
本专利技术所要解决的技术问题是,提供一种支持跨版本的数据库升级方法及装置,可以实现轻量级应用程序的数据库升级的问题。为了解决上述技术问题,本专利技术公开了一种支持跨版本的数据库升级方法,包括:在指定位置建立结构化查询语言SQL文件夹,所述SQL文件夹用于顺序存储应用程序不同版本下数据库升级对应的SQL文件,在应用程序的数据库中创建升级记录表,用于记录已执行成功的SQL文件;当应用程序升级时,在所述SQL文件夹中追加本次应用程序升级时数据库升级对应的SQL文件;当应用程序升级后启动,遍历所述SQL文件夹中的所有SQL文件,从数据库中的升级记录表中查询出已执行成功的所有SQL文件,对比得到尚未执行的SQL文件;对尚未执行的SQL文件按照排序依次进行读取并执行操作。可选地,上述方法中,所述顺序存储应用程序不同版本下数据库升级对应的SQL文件指:SQL文件夹中存储的用于数据库升级的SQL文件的名称顺序与应用程序版本的顺序一致。可选地,上述方法中,所述用于数据库升级的SQL文件包括应用程序不同版本下数据库升级时需要执行的SQL脚本。可选地,上述方法还包括:对尚未执行的SQL文件按照排序依次进行读取并执行操作时,将每个SQL文件放在一个事务中,若执行失败,则中断升级。可选地,上述方法中,所述升级记录表,完整记录所有已执行成功的SQL文件,且对所述升级记录表中所记录的所有SQL文件不允许任何修改。本文还公开了一种支持跨版本的数据库升级装置,包括:第一单元,在指定位置建立结构化查询语言SQL文件夹,所述SQL文件夹用于顺序存储应用程序不同版本下数据库升级对应的SQL文件,在应用程序的数据库中创建升级记录表,用于记录已执行成功的SQL文件;第二单元,在应用程序升级时,在所述SQL文件夹中追加本次应用程序升级时数据库升级对应的SQL文件;第三单元,在应用程序升级后启动时,遍历所述SQL文件夹中的所有SQL文件,从数据库中的升级记录表中查询出已执行成功的所有SQL文件,对比得到尚未执行的SQL文件;第四单元,对尚未执行的SQL文件按照排序依次进行读取并执行操作。可选地,上述装置中,所述顺序存储应用程序不同版本下数据库升级对应的SQL文件指:SQL文件夹中存储的用于数据库升级的SQL文件的名称顺序与应用程序版本的顺序一致。可选地,上述装置中,所述用于数据库升级的SQL文件包括应用程序不同版本下数据库升级时需要执行的SQL脚本。可选地,上述装置中,所述第四单元,对尚未执行的SQL文件按照排序依次进行读取并执行操作时,将每个SQL文件放在一个事务中,若执行失败,则中断升级。可选地,上述装置中,所述升级记录表,完整记录所有已执行成功的SQL文件,且对所述升级记录表中所记录的所有SQL文件不允许任何修改。本申请技术方案尤其适用于轻量级应用程序的数据库升级,满足了一般应用程序的数据库升级需求,既保留了已有的客户数据,又可实现跨版本升级。附图说明图1为本专利技术实施例中支持跨版本的数据库升级方法流程图。具体实施方式为使本专利技术的目的、技术方案和优点更加清楚明白,下文将结合附图对本专利技术技术方案作进一步详细说明。需要说明的是,在不冲突的情况下,本申请的实施例和实施例中的特征可以任意相互组合。本申请专利技术人提出,采用SQL语言作为升级数据库的脚本语言,这些语句按照版本号顺序(例如,版本号从低到高顺序)排列,程序需要控制的是哪些SQL需要执行,哪些不需要执行,从而实现数据库的升级。基于上述思想,本实施例提出一种支持跨版本的数据库升级方法,主要包括如下操作:在指定位置建立SQL文件夹,所述SQL文件夹用于顺序存储应用程序不同版本下数据库升级对应的SQL文件,在应用程序的数据库中创建升级记录表,用于记录已执行成功的SQL文件;当应用程序升级时,在所述SQL文件夹中追加本次应用程序升级时数据库升级对应的SQL文件;当应用程序升级后启动,遍历所述SQL文件夹中的所有SQL文件,从数据库中的升级记录表中查询出已执行成功的所有SQL文件,通过以上操作得到的结果集,过滤出尚未执行的SQL文件;对尚未执行的SQL文件按照排序依次进行读取,并执行其中的SQL脚本。下面,结合附图说明上述支持跨版本的数据库升级方法的具体实施,如图1所示,包括如下操作步骤:步骤100:建一个文件夹,专门存放用于数据库升级的SQL脚本文件,可称其为SQL文件夹。该步骤中,SQL文件夹中的SQL文件顺序存放,即按照SQL文件对应的版本号顺序排序,例如,SQL文件按照从低版本到高版本的顺序存储。步骤200:每次需要升级应用时,都在SQL文件夹中追加一个SQL文件,SQL文件中是本次升级需要执行的SQL脚本。步骤300:在应用程序的数据库中建立一个表,专门记录已经执行成功的SQL文件,可称其为升级记录表。步骤400:应用程序启动时,要有一个环节,专门负责数据库升级,即遍历SQL文件夹中的所有SQL文件;从数据库中的升级记录表中查询出哪些SQL文件已经执行成功过;通过以上操作得到的结果集,过滤出尚未执行的SQL文件;步骤500:将尚未执行的SQL文件按照文件名排序,依次读取尚未执行的SQL文件,执行里面的SQL脚本。其中,每个SQL文件里的脚本都放在一个事务中,执行成功的SQL文件要记录在升级记录表中,并且不允许再修改其内容。而执行未成功的SQL文件要将对应事务回滚,在日志中记录错误,并马上中断升级过程,以免数据库结构混乱。其中,由于读取的尚未执行的SQL文件可能有多个,此时,如果执行这此SQL文件均成功,则表示跨版本升级。要说明提,本申请中所涉及的数据库升级,并非数据库程序的升级,例如Oracle10g升级到Oracle11g,而是由于应用程序功能变更,对数据库的表、视图、索引、触发器等对象进行的增加、修改、删除等操作。本申请所涉及的跨版本,并非指数据库的版本(例如Oracle10g、Oracle11g),而是指所开发的应用程序的版本。本实施例还提供一种支持跨版本的数据库升级装置,可以实施上述数据库升级方法,主要包括如下各单元。第一单元,在指定位置建立结构化查询语言SQL文件夹,所述SQL文件夹用于顺序存储应用程序不同版本下数据库升级对应的SQL文件,在应用程序的数据库中创建升级记录表,用于记录已执行成功的SQL文件;其中,SQL文件夹中存储的用于数据库升级的SQL文件的名称顺序与应用程序版本的顺序一致。例如,SQL文件按照从低版本到高版本的顺序存储。用于数据库升级的SQL文件则包括应用程序不同版本下数据库升级时需要执行本文档来自技高网...
一种支持跨版本的数据库升级方法及装置

【技术保护点】
一种支持跨版本的数据库升级方法,其特征在于,包括:在指定位置建立结构化查询语言SQL文件夹,所述SQL文件夹用于顺序存储应用程序不同版本下数据库升级对应的SQL文件,在应用程序的数据库中创建升级记录表,用于记录已执行成功的SQL文件;当应用程序升级时,在所述SQL文件夹中追加本次应用程序升级时数据库升级对应的SQL文件;当应用程序升级后启动,遍历所述SQL文件夹中的所有SQL文件,从数据库中的升级记录表中查询出已执行成功的所有SQL文件,对比得到尚未执行的SQL文件;对尚未执行的SQL文件按照排序依次进行读取并执行操作。

【技术特征摘要】
1.一种支持跨版本的数据库升级方法,其特征在于,包括:在指定位置建立结构化查询语言SQL文件夹,所述SQL文件夹用于顺序存储应用程序不同版本下数据库升级对应的SQL文件,在应用程序的数据库中创建升级记录表,用于记录已执行成功的SQL文件;当应用程序升级时,在所述SQL文件夹中追加本次应用程序升级时数据库升级对应的SQL文件;当应用程序升级后启动,遍历所述SQL文件夹中的所有SQL文件,从数据库中的升级记录表中查询出已执行成功的所有SQL文件,对比得到尚未执行的SQL文件;对尚未执行的SQL文件按照排序依次进行读取并执行操作。2.如权利要求1所述的方法,其特征在于,所述顺序存储应用程序不同版本下数据库升级对应的SQL文件指:SQL文件夹中存储的用于数据库升级的SQL文件的名称顺序与应用程序版本的顺序一致。3.如权利要求2所述的方法,其特征在于,所述用于数据库升级的SQL文件包括应用程序不同版本下数据库升级时需要执行的SQL脚本。4.如权利要求1至3任一项所述的方法,其特征在于,该方法还包括:对尚未执行的SQL文件按照排序依次进行读取并执行操作时,将每个SQL文件放在一个事务中,若执行失败,则中断升级。5.如权利要求4所述的方法,其特征在于,所述升级记录表,完整记录所有已执行成功的SQL文件,且对所述升级记录表中所记录的所有SQL文件不允许任何修改。6.一种支持跨版本的数...

【专利技术属性】
技术研发人员:张德波
申请(专利权)人:郑州云海信息技术有限公司
类型:发明
国别省市:河南,41

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1