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两种数据库,根据配置文件选择数据库,文件里面包含了两种数据库的建库脚本。
一种去中心化的数据库---区块链PPT精品课件(国科大数据库新技术).pptx
1. **初始化数据库**:在应用程序的Application类中,创建并获取`OpenHelper`实例,然后通过`OpenHelper.getWritableDb()`打开数据库。 2. **操作数据**: - 插入数据:调用DAO的`insert()`方法。 - 查询数据:...
NVD漏洞-CNNVD中国信息完全漏洞数据库(2002-2017年漏洞数据集)大全NVD漏洞-CNNVD中国信息完全漏洞数据库(2002-2017年漏洞数据集)大全
掌握ThinkPHP5.0数据库和模型-离线版(官方).chm 掌握ThinkPHP5.0数据库和模型-离线版(官方).chm
数据库课程设计-工资管理系统:采用B/S模式,Eclipse EE版本开发,SQL Server数据库,实现“工资管理系统”,压缩包下,有工程源代码,数据库mdf文件,课程设计文档,及答辩PPT[全套]
数据库课程设计-基于的个性化购物平台的建表语句.sql
Verizon数据泄露调查报告 瑞典数据泄露事件 数据冰山 数据孤岛 数据流程 ...数据库虚拟化-DBhypervisor 数据库虚拟化-DBplayer 数据库虚拟化-DBmasker 数据库虚拟化-DBrecorder 数据库虚拟化-效果 总结
数据库课程设计-基于的图书智能一体化管理系统的建表语句.sql
这个职工管理系统作为一个学习项目,涵盖了数据库管理、后端编程和数据可视化等多个方面的知识,对于学习者来说是一次全面的实践。通过这个项目,不仅可以提升Java和SQL编程技能,还能了解到如何将理论知识应用于...
14-MySQL数据库基本操作-DDL-数据库操作 15-MySQL数据库基本操作-DDL-表创建-格式 16-MySQL数据库基本操作-DDL-数据类型-数字类型 17-MySQL数据库基本操作-DDL-数据类型-字符串类型 18-MySQL数据库基本操作-DDL-数据...
9. **版本控制**:项目文件名为SMIS1.1,暗示可能采用了版本控制系统(如Git),以便跟踪代码变更,协同开发和回滚到早期版本。 10. **测试与调试**:确保项目无误并能正常运行,开发者可能编写了单元测试和集成...
图数据库neo4j-community-5.24.2-windows版本,适用于国内无法访问neo4j官网的同学。
3. **SQL语言**:SQL(结构化查询语言)是操作数据库的语言,用于插入、查询、更新和删除数据。在教师管理系统中,我们需要编写SQL语句来执行各种操作,如添加新教师、查询特定课程的教师、更新教师信息等。 4. **...
- **图形化界面**:Dbeaver提供了直观的图形用户界面,允许用户通过拖放操作来创建和修改数据库结构,如表、视图和索引等。 - **SQL编辑器**:内置的SQL编辑器支持代码自动完成、语法高亮、错误检查等功能,极大...
而SQL Server是微软公司提供的关系型数据库管理系统,能够存储和管理大量结构化数据。 连接S7 1200 PLC与SQL Server的主要步骤包括: 1. **配置PLC**:确保PLC已正确编程,能收集所需的数据。这可能涉及编写梯形图...
功能:后台:单词及单词例句信息管理(英语单词的录入、修改、...(1)按数据库应用系统开发过程(包括需求分析、系统分析、系统设计、系统实施维护),设计并实现上述功能软件; (2)功能完善、界面友好、使用方便。
讲述了数据库只是中关于SQL语句的部分,有查询语句,创建语句,更新语句等。