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实现数据库版本控制-...
xxl-job适配了postgresql数据库,xxl-job版本是2.4.1,修改了官方的源代码。同时支持mysql和postgresql两种数据库,根据配置文件选择数据库,文件里面包含了两种数据库的建库脚本。
达梦数据库连接驱动--主要用于kettle native等数据库连接软件的驱动配置
一种去中心化的数据库---区块链PPT精品课件(国科大数据库新技术).pptx
在 Web 应用中,MySQL 常用来存储用户信息、产品详情、订单记录等结构化数据。 数据查询:MySQL 支持 SQL 语言,可以高效地执行复杂的查询操作,帮助开发者根据需求获取所需的数据。 事务处理:MySQL 支持事务处理,...
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 ...
通过本章的学习,学生可以掌握Access数据库的基础知识,包括数据库基础知识、关系数据库概念、数据库设计基础和Access数据库管理系统概述等,并掌握数据库设计的规范化方法和步骤,熟悉Access的工作界面等。...
Navicat 15作为其最新版本,引入了更多增强功能和优化,旨在提高数据库开发人员和管理员的工作效率。 1. **Navicat 15主要特性** - **多数据库类型支持**:Navicat 15能够同时连接多种类型的数据库,使得用户可以...
掌握ThinkPHP5.0数据库和模型-离线版(官方).chm 掌握ThinkPHP5.0数据库和模型-离线版(官方).chm
下一代数据库原力进化-助力企业数字化.pdf
* 数据库版本多样化会带来集中运维管理的难度大问题 * 需要统一版本管理,避免不同版本之间的冲突和不兼容问题 * 使用最新版本的数据库可以带来更好的性能和安全性 二、数据库性能优化 * 数据库性能问题是运维中...
openGauss-3.0.0-JDBC,适用于通过JDBC连接高斯数据库的驱动包,包括opengauss-jdbc-3.0.0.jar
Verizon数据泄露调查报告 瑞典数据泄露事件 数据冰山 数据孤岛 数据流程 ...数据库虚拟化-DBhypervisor 数据库虚拟化-DBplayer 数据库虚拟化-DBmasker 数据库虚拟化-DBrecorder 数据库虚拟化-效果 总结
Neo4j社区版是Neo4j数据库的免费版本,提供了核心的图数据库功能。它适用于开发者和小团队,允许他们以较低的门槛开始使用图数据库进行应用开发和探索。社区版虽然在性能和高级特性上与商业版存在差距,但对于学习和...
近年来,人民银行推动信息化安全可控的国家战略,银行业加快了信息科技国产化、开源化、分布式的实践步伐,然而金融行业对数据库的数据强一致、数据安全、服务稳定的要求十分严苛。热璞致力于帮助金融行业单位进行...
14-MySQL数据库基本操作-DDL-数据库操作 15-MySQL数据库基本操作-DDL-表创建-格式 16-MySQL数据库基本操作-DDL-数据类型-数字类型 17-MySQL数据库基本操作-DDL-数据类型-字符串类型 18-MySQL数据库基本操作-DDL-数据...
9. **版本控制**:项目文件名为SMIS1.1,暗示可能采用了版本控制系统(如Git),以便跟踪代码变更,协同开发和回滚到早期版本。 10. **测试与调试**:确保项目无误并能正常运行,开发者可能编写了单元测试和集成...
标题中的“21-08-04_FMDemo(002_在MicrosoftSQLServer中自动生成相应的数据库-表-字段-约束规则).rar”指的是一个关于在Microsoft SQL Server中使用某种工具或方法自动创建数据库结构的示例。这个示例可能是一个教程...