Dbdeploy
需求——
数据库版本化与代码版本化的区别在于数据库中的生产数据是现场(即用户)创造的,当我们的表结构发生改变时,不能直接用drop table然后再create table,因为这样会导致生产数据丢失。而代码则完全由开发人员创造,可以用完全覆盖的方式升级。由于这点不同,致使数据库在版本化的过程中必然要采用与代码不同的方法。
功能——
完成数据库结构版本化,方便回滚,也可以完成数据库数据的回滚,但是一般不使用。在项目开发过程中,不断验证数据库脚本的正确性,在项目部署之初,可以方便的部署数据库。
原理——
在已存在一张user表,包含字段ID和NAME的情况下,需要添加新的ADDRESS字段,
全量脚本
create table user{
ID VARCHAR(18) not null,
NAME VARCHAR(60) not null,
ADDRESS VARCHAR(80) not null
};
增量脚本
alter table user add ADDRESS VARCHAR(80) null
update user set ADDRESS=’地址’
alter table user modify ADDRESS VARCHAR(80) not null
这是普通的增量脚本,dbdeploy的工作是使用增量脚本完成对数据库结构的变更,增量脚本格式
1 create users table.sql
数据库中有一张changLog表,记录版本号,从而使dbdeploy知道哪些增量脚本已经提交到数据库
在跟乔老板聊过后,发现dbdeploy的增量脚本中是需要写——有待验证
alter table user add ADDRESS VARCHAR(80) not null;
alter table user drop COLUMN ADDRESS //此句供dbdeploy回滚使用
并且表结构的变更,对表数据的影响有限,表中数据总量不会发生变化,字段可能发生变化。
每次对ddl的修改都使用增量脚本的方式,记录数据库结构的变化
优点——
1. 方便自动构建部署,满足了包括db在内的所有代码可以进行持续集成和顺利迁移
2. 在数据库版本的不断升级过程中,不断验证脚本的正确性
缺点——
1. 需要在数据中添加changelog表,不是完全的自动化
分享到:
相关推荐
数据库开发规范--版本管理,主要使用SVN进行版本管理和PLSQL DEV的SVN插件
SQL Server 数据库技术---基础篇(T-SQL基础、数据库...异步应用程序平台、空间数据类型跨实例链接、数据库管理自动化、商务智能) 、数据库性能优化(数据库存储与索引、数据查询、事务处理、数据库系统调优 工具)
本课程设计采用了结构化和面向对象两种程序设计方法,从页面展示到后台数据库设计都具有一定的可扩展性。本系统在Windows XP环境中采用Visual C++为开发平台,使用Microsoft Access 2000创建数据库,用于对超市资料...
一种去中心化的数据库---区块链PPT精品课件(国科大数据库新技术).pptx
仿微博系统-java-数据库8.0版本-Apache Tomcat8.5
数据库课程设计--教师管理系统.rar数据库课程设计--教师管理系统.rar
数据库大作业--网上购物系统(sql server)--zq 数据库大作业--网上购物系统(sql server)--zq
轻松掌握数据库开发!
数据库题库7-X86及虚拟化L1-2.docx
数据库题库1-X86及虚拟化L1-1.docx
MySQL数据库入门--读书笔记(word版本)
PostgreSQL数据库,9.2.4-1版本,windows-x64版
Oracle数据库管理--创建数据库.pptx
来自IBM的数据库规范化详解,通过例子详细地讲述了数据库规范化的过程。 热爱数据库技术的你一定要下载哦!
VC数据库编程实例-ORACLE数据库VC数据库编程实例
数据库课程设计----C#版学生信息管理系统
数据库逆向 ideageneratorSqlmapCustom-idea1.zip idea版本 数据库逆向 ideageneratorSqlmapCustom-idea1.zip idea版本
Oracle数据库10g-对自我管理数据库进行管理2-P.pptx
Oracle数据库10g-对自我管理数据库进行管理1-P.pptx