如果大家做过升级包,也许会有同感,即升级中最复杂的,就是数据库脚本的升级。
因为.class,.jsp等文件,即使2个版本天差地别,大不了全量替换就可以了。但是对于sql脚本,就没有这么简单了。哪怕不考虑业务数据备份的问题,光是表结构和初始化数据的变更,就已经很麻烦了
对于集中部署的应用,这种情况还好一些,如果应用是在各个局点有不同的版本,那就需要制作不同的升级包,这个麻烦就被更加放大了
以前想到了一些管理手段来缓解这个问题,比如将sql脚本集中存放,比如对于sql的变动加以详细记录等
今天是要总结一个新的方法,听同事说起的,我觉得可能是可行的,在此记录一下。下个版本实践试试看
举例来说,应用第1个版本,安装包里有一系列sql脚本,比如说叫做init.sql,里面有一句sql是
insert into USER values ("1","kitty","female");
第2个版本,需要对这条初始化数据进行修改,有一种办法是,修改init.sql为
insert into USER values ("1","superman","male");
这样的话,如果一个局点,已经跑着第1个版本,现在要升级到第2个版本,那就需要写一个新的升级脚本update.sql
update USER set NAME = 'superman', Sex = 'male' WHERE ID = '1';
我的同事就提出一个方案,即在版本发布以后,就不对原有的sql脚本进行修改,而是根据版本提供升级脚本,放在相应的目录里。
比如说
/version1.0/init.sql
/version1.1/update_1.1.sql
/version1.2/update_1.2.sql
然后在安装脚本里提供入口,如果是1.0版本的安装包,就仅仅执行init.sql;如果是1.1版本的安装包,就执行init.sql和update_1.1.sql
如果不是要全量安装,而是要升级的话,就在升级脚本中提供入口,执行相应的脚本就可以了
这个方式我想过去觉得是可行的,大家有没有别的意见?
分享到:
相关推荐
3.3、增量脚本指在执行主脚本或副脚本之后,根据需求对某个表添加/修改约束(主外键约束,长度约束等),添加/修改字段/添加数据等情况对数据库结构改变处理的一种行为脚本。 1.2作用 1、 快速产出自定义规则...
bat+sqlcmd 批量运行脚本 Hello,此BAT脚本可以帮助开发人员将某文件夹下所有SQL脚本按文件名依次在指定数据库中批量执行。不用忍受powershell invoke-sqlcmd 的笨重,在指运行时多一种选择。
CreateDB SQL脚本是一种用于创建数据库的SQL脚本,脚本中包含了一些基本的数据库设置和参数配置。下面是从该脚本中可以提炼出来的知识点: 1. Copyright说明:该脚本开头的opyright说明表明了该软件的所有权和使用...
MSSQL SQL Server 是一种关系型数据库管理系统,广泛应用于各种行业和领域。有时,我们需要对数据库中的数据进行操作,例如计算相邻两条数据的差异。在本文中,我们将讨论如何使用 SQL 脚本在 MSSQL SQL Server 中...
个人博客中的Windows环境下批量执行Oracle的SQL的一种方法这篇文章的附件 个人博客中的Windows环境下批量执行Oracle的SQL的一种方法这篇文章的附件
SpringBoot+Vue汽车租赁管理系统 java毕业设计 源码+sql脚本+论文+PPT【完整版】 数据库是mysql 快速发展的社会中,人们的生活水平都在提高,生活节奏也在逐渐加快。为了节省时间和提高工作效率,越来越多的人选择...
停车场管理是用计算机管理机动车辆的档案,运营管理的一种计算机应用技术的创新,在计算机还未普及之前停车管理都是由工作人员手工抄写的方式来操作的.现在一般的停车场管理都是采用计算机作为工具的实用的计算机智能...
Springboot宠物医院管理系统 java毕业设计 源码+sql脚本+论文 完整版 数据库是mysql 在信息技术高速发展的今天,新知识、新技术层出不穷,计算机技术早已广泛的应用于各行各业之中,利用计算机的强大数据处理能力和...
SQL(Structured Query Language)结构化查询语言,是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统。同时也是数据库脚本文件的扩展名。
系统内置了以下4种角色: 超级管理员、小区管理员、小区普通员工、业主 每一种角色都有不同的操作权限。 同时也可以根据需要,自定义多种角色,然后为其分配相应的操作权限。 系统配置 主要模块:系统基础配置、...
SQL脚本支持两种表结构,一种是3个表,另一种是单个表根据父级ID获取下级
跨站脚本是一种常见的针对Web应用程序安全的漏洞攻击方式。恶意用户利用漏洞将恶意脚本注入网页之中,当用户浏览该网页时,便会触发脚本,导致攻击行为产生。为此,针对各种变形跨站脚本攻击难以检测问题,对一种...
一般而言,有以下两种连接 SQL Server 的方式,一是利用 SQL Server 自带的客户端工具,如企业管理器、查询分析器、事务探查器等;二是利用用户自己开发的客户端程序,如ASP 脚本、VB程序等,客户端程序中又是利用 ...
【毕业设计】基于SpringBoot+Mybatis实现的教务管理系统(前后端源码+SQL脚本).zip 简介 这个项目是一个简单的教务查询系统,其中有三种角色:管理员,教师,学生。三种角色都有相应的权限,其中: 管理员:对课程...
删除SQLServer2008数据库日志文件脚本,MSSql2005的ldf缩小方法已经不适用MSSql2008了,MSSql2008采用了一种新的方式用来把ldf文件缩小,效果很不错;
一种二阶SQL注入攻击防御方法 SQL 注入攻击已经成为 Web 应用程序最大的安全威胁。二阶 SQL 注入危害性大,注入点隐秘性高,注入过程复杂,不易检测。为防御二阶 SQL 注入,提出了一种基于代理服务器的防御方法。...
2.首先将你的数据库还原,打开sql2000企业管理器新建一个score数据库,建好后在其上右键还原数据库,然后添加文件选中从设备添加,找到score文件夹下的score文件,如果看不到请将score文件添加后缀名.bat,然后重新...
一般而言,有以下两种连接SQLServer的方式,一是利用SQLServer自带的客户端工具,如企业管理器、查询分析器、事务探查器等;二是利用用户自己开发的客户端程序,如ASP脚本、VB程序等,客户端程序中又是利用ODBC或者...
博客,又译为网络日志、部落格或部落阁等,是一种通常由个人管理、不定期张贴新的文章的网站。博客它经常是由简短且经常更新的帖子构成,它可以发表有关个人构思,日记,或者诗歌,散文,小说等等。博客可以是你纯粹...
基于ASP和SQL-Server数据库的小型图书管理系统是一种使用ASP作为主要开发语言,Dreamweaver CS5和Fireworks作为主要开发工具,SQL Server作为数据库管理系统的小型图书管理系统。该系统具有低成本、易于使用的特点,...