`

一种可能的SQL脚本管理方式

阅读更多
如果大家做过升级包,也许会有同感,即升级中最复杂的,就是数据库脚本的升级。

因为.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

如果不是要全量安装,而是要升级的话,就在升级脚本中提供入口,执行相应的脚本就可以了

这个方式我想过去觉得是可行的,大家有没有别的意见?
分享到:
评论
1 楼 diyunpeng 2012-11-03  
我之前管理就是这样管理,在数据库里面存放一个版本记录表,然后在安装总入口处执行,查看需要安装那些升级包,注意的就是要按照时间排序,譬如12.11.11代表2012年11月11日做的升级包,这是我的思路,总体运行还可以,这样弄之后,即使是分布式多点部署了,也没问题,安装脚本会自动执行对应的升级包。

相关推荐

    SQL脚本批量执行,方便大量的SQL脚本执行。

    1. **SQL Server Management Studio (SSMS)**:对于SQL Server用户,SSMS提供了一种直观的方式批量执行SQL脚本。你可以打开一个脚本文件,然后通过"运行"或"F5"键执行所有语句。如果需要处理多个文件,可以编写一个...

    sql server 导入超大SQL脚本文件

    SQL Server 是一种关系型数据库管理系统,广泛应用于各种行业。然而,在实际应用中,我们经常会遇到导入超大 SQL 脚本文件的问题。本文将介绍如何使用 osql 工具来导入超大 SQL 脚本文件。 什么是 osql? osql 是 ...

    Sql脚本对比工具

    Sql脚本对比工具是一种高效实用的软件,专为数据库管理员和开发人员设计,用于比较和同步SQL脚本。这类工具通常具有用户友好的界面,能够方便地处理多个SQL语句的差异,帮助用户快速定位并解决数据库之间的不一致...

    sqlserver表数据生成insertsql脚本(导出成insertsql脚本).pdf

    SQL Server是一种强大的关系数据库管理系统,提供了多种方式来生成INSERT SQL脚本,以便将数据导出到其他数据库或系统中。在本文中,我们将介绍如何使用SQL Server 2008中文版生成INSERT SQL脚本。 生成INSERT SQL...

    C# 执行SQL脚本

    SQL脚本可能包含多条命令,用分号";"隔开。可以使用`Split(';')`方法将其分割成多个命令字符串数组。 6. **逐条执行SQL命令**: 遍历命令字符串数组,对每个命令创建新的SqlCommand对象,并执行: ```csharp ...

    SQL脚本文件合并工具

    3. **SQL语法兼容性**:由于不同的SQL脚本可能存在不同的语法特性,工具需要确保合并后的脚本在Oracle环境中是可执行的,这就需要对Oracle SQL语法有深入的理解。 4. **错误处理**:在合并过程中,可能会遇到语法...

    批量执行SQL脚本(附源码).zip

    源码附带的这个工具可能采用了一种类似批处理的方式,逐行读取SQL脚本,解析语句,并通过数据库连接执行。在编程实现上,可能会使用如Java的JDBC(Java Database Connectivity)或者Python的psycopg2(PostgreSQL ...

    excel生成sql脚本

    VBA是Excel内置的一种编程语言,它允许用户自定义功能和自动化任务。在“vba提取自WPS2012专业增强版”中,可能包含了用于从Excel数据生成SQL脚本的VBA代码。使用VBA,我们可以创建一个宏,该宏读取Excel表格中的...

    批处理sql脚本实例

    总结来说,批处理SQL脚本实例是一种结合了操作系统批处理命令和数据库操作的自动化解决方案,它能够帮助IT专业人员高效地管理和维护数据库。使用时,用户需要根据自己的具体环境对脚本进行适当的调整,并确保所有...

    SQLSERVER脚本生成工具,表数据生成SQL脚本

    SQL(Structured Query Language)脚本是一种用文本格式存储的一系列SQL语句,可以被一次性执行,执行结果包括但不限于创建数据库对象(如表、视图)、插入或更新数据、执行查询以及管理数据库权限等。生成SQL脚本...

    全国省市县区信息sql脚本

    首先,我们来了解SQL(Structured Query Language),这是一种用于管理和处理关系数据库的标准编程语言。SQL脚本文件是包含了一系列SQL命令的文本文件,用于执行一系列数据库操作,如创建表、插入数据、更新数据或...

    SQLServer脚本批量执行工具

    SQLServer脚本批量执行工具是一种高效管理SQL Server数据库的实用程序,它允许用户一次性执行多个SQL脚本,显著提高了数据库管理员的工作效率。该工具的主要功能包括脚本的顺序执行、执行结果的记录以及脚本的可视化...

    SQL+VB学生成绩管理系统+SQL脚本

    【SQL+VB学生成绩管理系统+SQL脚本】是一个基于SQL数据库和Visual Basic(VB)开发的学生成绩管理系统项目。这个系统旨在提供一个平台,用于存储、管理、查询和分析学生的学习成绩。虽然该项目并未完全完成所有模块...

    SQL脚本生成器

    3.3、增量脚本指在执行主脚本或副脚本之后,根据需求对某个表添加/修改约束(主外键约束,长度约束等),添加/修改字段/添加数据等情况对数据库结构改变处理的一种行为脚本。 1.2作用 1、 快速产出自定义规则...

    SQL脚本生成工具

    SQL脚本生成工具是一种在IT行业中广泛使用的实用程序,它主要功能是帮助用户方便地创建、管理和迁移数据库中的数据。这种工具通常具有多种高级特性,包括但不限于自动化脚本生成、数据导出导入、结构同步以及数据库...

    SQL脚本测试工具

    SQL脚本测试工具则为开发人员提供了一种高效、便捷的方式来验证和调试SQL脚本,确保其准确性和性能。Java作为一种广泛应用的编程语言,也常被用于构建这样的工具,提供跨平台的解决方案。 本文将详细介绍"SQL脚本...

    把数据库中的数据导出为sql脚本

    - 数据量大时,导出的SQL脚本可能会非常大,影响读取和执行效率,这时可能需要分批导出或者使用其他方式(如BULK INSERT)导入。 - 导出脚本时,确保有适当的权限,特别是涉及到系统表或敏感数据时。 - 如果是生产...

    批处理执行sql脚本

    批处理执行SQL脚本是一种常见的数据库管理操作,尤其在需要对大量数据进行处理或自动化数据库维护时非常有用。本文将详细介绍批处理的概念、如何通过批处理执行SQL脚本以及涉及的相关知识点。 批处理(Batch ...

    批量执行sql脚本

    总的来说,批量执行SQL脚本是一种高效且实用的方法,尤其在处理大量数据库操作时。了解如何编写和使用SQL脚本,以及选择合适的工具进行批量执行,对于数据库管理和开发人员来说是必不可少的技能。通过熟练掌握这一...

    批量执行Sql脚本工具(含代码)

    1. **批处理概念**:批处理是一种将多个命令或操作组合在一起,一次性执行的技术。在数据库管理中,批处理SQL脚本意味着一次性运行多个SQL语句或脚本,这对于数据库初始化、数据迁移或大型数据更新操作非常有用。 2...

Global site tag (gtag.js) - Google Analytics