193.Spring Boot 数据库迁移:概述

【视频&交流平台】

àSpring Boot视频

http://study.163.com/course/introduction.htm?courseId=1004329008&utm_campaign=commission&utm_source=400000000155061&utm_medium=share

àSpring Cloud视频

http://study.163.com/course/introduction.htm?courseId=1004638001&utm_campaign=commission&utm_source=400000000155061&utm_medium=share

àSpring Boot源码

https://gitee.com/happyangellxq520/spring-boot

àSpring Boot交流平台

http://412887952-qq-com.iteye.com/blog/2321532

【最新动态】

(2)Spring Cloud视频更新到最新章节:《Feign添加 fallbackFactory 属性来触发请求进行容灾降级》

前言:

在之后的几篇文章中会介绍下数据库迁移工具Fly和Liquibase。

在这里的数据库迁移主要是对数据库结构版本管理和迁移。

一、为什么需要数据库迁移工具?

那在没有使用迁移工具的时候,我们会碰到什么呢?

(1)多人协同开发,对数据库结构变更的管理困难:不同的开发人员在开发产品特性时,都有可能更新数据库(添加新表,新的约束等)。当开发人员完成工作并提交代码时,代码会被合并到主分支并在测试服务器上执行单元测试与集成测试。我们在哪个环节来执行数据库的更新操作呢?由QA 部门手工执行sql 脚本?或者我们开发一断程序自动执行数据库更新?以什么顺序来执行这些更新脚本?这些问题同样存在于生产环境。

(2)多环境,升级困难:我们的产品部署在不同的客户服务器上,以及很多的测试、联调、实验局、销售环境上。不同的客户和测试环境上都部署着不同版本的产品。当他们需要升级他们的产品到新的版本时,我们不仅需要让他们的管理员可以升级产品到新的版本,同时需要保留他们的已有数据。在升级产品的步骤中,我们清楚地知道客户数据库的当前版本,以及需要在该数据库上执行哪些数据库更新脚本,来更新数据库表结构与数据库中已存在的数据。当升级完成时,数据库表结构及数据应当与升级后的产品版本保持一致。

二、数据库迁移方式

2.1 schema.sql

最简单的方式可以在schema.sql里定义schema。在第一次运行时,这么做没有问题,但随后每次启动应用程序时,这个初始化脚本都会失败,因为数据表已经存在了。这就要求在书写初始化脚本时格外注意,不要重复执行那些已经做过的工作。

2.2 JPA的ddl-auto

2.3使用数据库迁移工具

使用数据库迁移工具:它使用一系列数据库脚本,而且会记录哪些已经用过了,不会多次运用同一个脚本。应用程序的每个部署包里都包含了这些脚本,数据库可以和应用程序保持一致。Spring Boot为两款流行的数据库迁移工具提供了自动配置支持:

(1)Flyway:http://flywaydb.org

在接下来的文章中,我们会分别介绍下Flyway和Liquibase。

【预告】

194. Spring Boot 数据库迁移:Flyway

195. Spring Boot 2.0 数据库迁移:Flyway

196. Spring Boot 数据库迁移:Liquibase

196. Spring Boot 2.0数据库迁移:Liquibase

>点赞、转发、评论,伸出你的双手666…召唤你的小蚂蚁:

>你就是你,不一样的小蚂蚁

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180429B1CH9600?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券

,,