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表,不是完全的自动化
分享到:
相关推荐
Java开发案例-springboot-27-整合Flyway实现数据库版本控制-源代码+文档.rar Java开发案例-springboot-27-整合Flyway实现数据库版本控制-源代码+文档.rar Java开发案例-springboot-27-整合Flyway实现数据库版本控制-...
数据库开发规范--版本管理是确保团队协作中数据库代码一致性、可追踪性和稳定性的关键实践。在这一领域,Subversion(SVN)作为一种流行的版本控制系统,常被用于管理数据库对象如存储过程、函数、触发器、表结构等...
- 软件配置:Windows 2000或更高版本操作系统,Microsoft Access 2000数据库,Visual C++开发环境。 - 硬件配置:Pentium II 266或更高CPU,64MB以上内存,2GB以上硬盘空间,VGA或更高分辨率显示器。 3. 关键问题...
一种去中心化的数据库---区块链PPT精品课件(国科大数据库新技术).pptx
PG-13.7 数据库安装包 postgresql-13.7-1-windows-x64.exe 官方下载的安装包 windows下 直接安装即可
1. **下载数据库脚本**:提供的压缩包中应该包含了XXL-JOB针对达梦数据库的初始化脚本。这些脚本用于创建XXL-JOB所需的表结构和索引,例如`xxl_job_info`(任务信息表)、`xxl_job_log`(任务日志表)等。请根据实际...
SpringBoot 集成 MyBatis-Plus 实现国产数据库适配 MyBatis-Plus 是一款在 MyBatis 的基础上进行扩展的开源工具包,只做增强不做改变,引入 MyBatis-Plus 不会对您现有的 Mybatis 构架产生任何影响。MyBatis-Plus ...
* 数据库版本多样化会带来集中运维管理的难度大问题 * 需要统一版本管理,避免不同版本之间的冲突和不兼容问题 * 使用最新版本的数据库可以带来更好的性能和安全性 二、数据库性能优化 * 数据库性能问题是运维中...
ER图(实体关系图)是数据库设计的可视化工具,`ER图.bmp`展示了系统中各个实体(如员工、部门、工资等)之间的关系。通过这个图,我们可以理解数据模型的结构,以及实体间的关联。`数据库实验报告.doc`提供了关于...
掌握E-R模型的概念和方法,关系数据库规范化理论和数据库设计方法,通过上机实习的训练,初步具备进行数据库应用系统开发的能力。 对数据库领域研究的深入课题有大致了解,激发在此领域中继续学习和研究的愿望,为...
1. DBCA(Database Configuration Assistant)是Oracle提供的图形化工具,用于简化数据库的创建、配置和删除过程。通过DBCA,用户可以定制数据库的各个选项,例如数据库类型、存储参数、安全设置等。它还允许用户...
数据库课程设计-基于的个性化购物平台的建表语句.sql
这是大三数据库课程要求做的课程设计,用Java语言写的。报刊订阅系统的功能主要有订户、订单、报刊的增删...以下这是修正后的版本,名为 “数据库课程设计-报刊订阅系统-Java语言(修正版)” 默认登陆账号和密码为admin
Verizon数据泄露调查报告 瑞典数据泄露事件 数据冰山 数据孤岛 数据流程 ...数据库虚拟化-DBhypervisor 数据库虚拟化-DBplayer 数据库虚拟化-DBmasker 数据库虚拟化-DBrecorder 数据库虚拟化-效果 总结
数据库是按照数据结构来组织、存储和管理数据的仓库,这些数据可以是结构化的,如表格形式,也可以是非结构化的,如文本、图像或音频。常见的数据库类型包括关系型数据库(如MySQL、Oracle)、非关系型数据库(如...
近年来,人民银行推动信息化安全可控的国家战略,银行业加快了信息科技国产化、开源化、分布式的实践步伐,然而金融行业对数据库的数据强一致、数据安全、服务稳定的要求十分严苛。热璞致力于帮助金融行业单位进行...
数据库课程设计-基于的图书智能一体化管理系统的建表语句.sql
这个职工管理系统作为一个学习项目,涵盖了数据库管理、后端编程和数据可视化等多个方面的知识,对于学习者来说是一次全面的实践。通过这个项目,不仅可以提升Java和SQL编程技能,还能了解到如何将理论知识应用于...
14-MySQL数据库基本操作-DDL-数据库操作 15-MySQL数据库基本操作-DDL-表创建-格式 16-MySQL数据库基本操作-DDL-数据类型-数字类型 17-MySQL数据库基本操作-DDL-数据类型-字符串类型 18-MySQL数据库基本操作-DDL-数据...
9. **版本控制**:项目文件名为SMIS1.1,暗示可能采用了版本控制系统(如Git),以便跟踪代码变更,协同开发和回滚到早期版本。 10. **测试与调试**:确保项目无误并能正常运行,开发者可能编写了单元测试和集成...