193. Spring Boot 数据库迁移:概述
【视频&交流平台】
à SpringBoot视频:http://t.cn/R3QepWG
à SpringCloud视频:http://t.cn/R3QeRZc
à Spring Boot源码:https://gitee.com/happyangellxq520/spring-boot
à Spring Boot交流平台:http://412887952-qq-com.iteye.comhttps://blog.csdn.net/blog/2321532
à Spring Boot Shiro视频:http://t.cn/R3QDMbh
à Spring Boot 2.0 之Spring Data 和JPA:http://t.cn/R1pSojf
前言:
在之后的几篇文章中会介绍下数据库迁移工具Fly和Liquibase。
在这里的数据库迁移主要是对数据库结构版本管理和迁移。
一、为什么需要数据库迁移工具?
那在没有使用迁移工具的时候,我们会碰到什么呢?
(1)多人协同开发,对数据库结构变更的管理困难:不同的开发人员在开发产品特性时,都有可能更新数据库(添加新表,新的约束等)。当开发人员完成工作并提交代码时,代码会被合并到主分支并在测试服务器上执行单元测试与集成测试。我们在哪个环节来执行数据库的更新操作呢?由QA 部门手工执行sql 脚本?或者我们开发一断程序自动执行数据库更新?以什么顺序来执行这些更新脚本?这些问题同样存在于生产环境。
(2)多环境,升级困难:我们的产品部署在不同的客户服务器上,以及很多的测试、联调、实验局、销售环境上。不同的客户和测试环境上都部署着不同版本的产品。当他们需要升级他们的产品到新的版本时,我们不仅需要让他们的管理员可以升级产品到新的版本,同时需要保留他们的已有数据。在升级产品的步骤中,我们清楚地知道客户数据库的当前版本,以及需要在该数据库上执行哪些数据库更新脚本,来更新数据库表结构与数据库中已存在的数据。当升级完成时,数据库表结构及数据应当与升级后的产品版本保持一致。
二、数据库迁移方式
2.1 schema.sql
最简单的方式可以在schema.sql里定义schema。在第一次运行时,这么做没有问题,但随后每次启动应用程序时,这个初始化脚本都会失败,因为数据表已经存在了。这就要求在书写初始化脚本时格外注意,不要重复执行那些已经做过的工作。
2.2 JPA的ddl-auto
如果在项目中使用的是JPA的话,那么可以通过Spring Boot的spring.jpa.hibernate.ddl-auto属性将hibernate.hbm2ddl.auto属性设置为update,就能够自动创建表结构信息。如果使用的是mybatis的话,那么这种方式就不能使用了。
2.3 使用数据库迁移工具
使用数据库迁移工具:它使用一系列数据库脚本,而且会记录哪些已经用过了,不会多次运用同一个脚本。应用程序的每个部署包里都包含了这些脚本,数据库可以和应用程序保持一致。Spring Boot为两款流行的数据库迁移工具提供了自动配置支持:
(1)Flyway:http://flywaydb.org
(2)Liquibase:http://www.liquibase.org
在接下来的文章中,我们会分别介绍下Flyway和Liquibase。
【预告】
194. Spring Boot 数据库迁移:Flyway
195. Spring Boot 2.0 数据库迁移:Flyway
196. Spring Boot 数据库迁移:Liquibase
196. Spring Boot 2.0数据库迁移:Liquibase
微信公众号「SpringBoot」最近更新:
206. Spring Boot 2.0 Swagger2:使用 205. Spring Boot 2.0 Swagger2:初识Swagger 当要离开的时候,我却动情了 205. jetcache:你需要知道的小技巧 204. jetcache:在Spring Boot中怎么玩? 遇见阿里,遇见自己 203. 阿里jetcache 202. 阿里Pandora Boot 微信公众号赞赏功能升级了,真的假的? 《喜剧之王》「我养你啊」之人生选择 201. Spring Boot JNDI:Spring Boot中怎么玩JNDI 510阿里日,马老师献上最走心、最科技范儿证婚词~ 200. Spring Boot JNDI:在Tomcat中怎么玩JNDI? 199. Spring Boot JNDI:这是虾米? Spring Boot 数据库迁移系列 Spring Boot葵花宝典:初露锋芒:MyBatis insert异常 Parameter 'name' not found 198. Spring Boot Flyway工作原理 21天习惯养成法则 197. Spring Boot 2.0数据库迁移:Liquibase 196. Spring Boot 数据库迁移:Liquibase 195. Spring Boot 2.0数据库迁移:Flyway 194. Spring Boot 数据库迁移:Flyway 193. Spring Boot 数据库迁移:概述
转载于:https://my.oschina.net/happyangellxq/blog/1913774
- 点赞
- 收藏
- 分享
- 文章举报
- 193. Spring Boot 数据库迁移:概述
- SpringBoot之开启数据库迁移的FlyWay使用
- 196. Spring Boot 数据库迁移:Liquibase
- 197. Spring Boot 2.0数据库迁移:Liquibase
- 浅谈SpringBoot之开启数据库迁移的FlyWay使用
- Report Services的RS数据库迁移后,无法在WEB中访问Report Services!
- 170622、springboot编程之JPA操作数据库
- SpringBoot学习 —— 数据库配置
- 从Sql server 2000往Oracle 10g数据库迁移遇到的问题——第一次不可抑止地想转载
- SQL Server 数据库迁移偏方
- 数据库概述
- Entity Framework Core 数据库自动迁移API
- SpringBoot填坑系列---XML方式配置数据库
- 数据库迁移可能遇到的问题
- 第三十六篇:JAVA访问数据库之概述
- spring boot 整合 redis,使用@Cacheable,@CacheEvict,@CachePut,jedisPool操作redis数据库
- alembic 迁移数据库
- 迁移WordPress到另一台数据库
- 用 SQL Developer 3.2 将 SQL Server 2008 数据库离线迁移到 Oracle 11g
- 打算写一个简单的数据库迁移工具