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实现数据库版本控制-...
达梦数据库连接驱动--主要用于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`(任务日志表)等。请根据实际...
1. **初始化数据库**:在应用程序的Application类中,创建并获取`OpenHelper`实例,然后通过`OpenHelper.getWritableDb()`打开数据库。 2. **操作数据**: - 插入数据:调用DAO的`insert()`方法。 - 查询数据:...
通过本章的学习,学生可以掌握Access数据库的基础知识,包括数据库基础知识、关系数据库概念、数据库设计基础和Access数据库管理系统概述等,并掌握数据库设计的规范化方法和步骤,熟悉Access的工作界面等。...
NVD漏洞-CNNVD中国信息完全漏洞数据库(2002-2017年漏洞数据集)大全NVD漏洞-CNNVD中国信息完全漏洞数据库(2002-2017年漏洞数据集)大全
* 数据库版本多样化会带来集中运维管理的难度大问题 * 需要统一版本管理,避免不同版本之间的冲突和不兼容问题 * 使用最新版本的数据库可以带来更好的性能和安全性 二、数据库性能优化 * 数据库性能问题是运维中...
数据库课程设计-工资管理系统:采用B/S模式,Eclipse EE版本开发,SQL Server数据库,实现“工资管理系统”,压缩包下,有工程源代码,数据库mdf文件,课程设计文档,及答辩PPT[全套]
ER图(实体关系图)是数据库设计的可视化工具,`ER图.bmp`展示了系统中各个实体(如员工、部门、工资等)之间的关系。通过这个图,我们可以理解数据模型的结构,以及实体间的关联。`数据库实验报告.doc`提供了关于...
SpringBoot 集成 MyBatis-Plus 实现国产数据库适配 MyBatis-Plus 是一款在 MyBatis 的基础上进行扩展的开源工具包,只做增强不做改变,引入 MyBatis-Plus 不会对您现有的 Mybatis 构架产生任何影响。MyBatis-Plus ...
openGauss-3.0.0-JDBC,适用于通过JDBC连接高斯数据库的驱动包,包括opengauss-jdbc-3.0.0.jar
数据库课程设计-基于的个性化购物平台的建表语句.sql
这是大三数据库课程要求做的课程设计,用Java语言写的。报刊订阅系统的功能主要有订户、订单、报刊的增删...以下这是修正后的版本,名为 “数据库课程设计-报刊订阅系统-Java语言(修正版)” 默认登陆账号和密码为admin
Verizon数据泄露调查报告 瑞典数据泄露事件 数据冰山 数据孤岛 数据流程 ...数据库虚拟化-DBhypervisor 数据库虚拟化-DBplayer 数据库虚拟化-DBmasker 数据库虚拟化-DBrecorder 数据库虚拟化-效果 总结
数据库课程设计-基于的图书智能一体化管理系统的建表语句.sql