【视频&交流平台】
http://study.163.com/course/introduction.htm?courseId=1004329008&share=2&shareId=400000000199036
http://study.163.com/course/introduction.htm?courseId=1004638001&share=2&shareId=400000000199036
https://gitee.com/happyangellxq520/spring-boot
http://412887952-qq-com.iteye.com/blog/2321532
à Spring Boot 2.0 之Spring Data 和JPA
http://study.163.com/course/courseMain.htm?courseId=1005454046&share=2&shareId=400000000199036
【最新动态】
SpringBoot微信公众号最新更新《201. Spring Boot JNDI:Spring Boot中怎么玩JNDI》
à Spring Boot 2.0 之Spring Data 和JPA视频
前言:
在之后的几篇文章中会介绍下数据库迁移工具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
相关推荐
Pro Spring Boot is your authoritative hands-on practical guide for increasing your Spring Framework-based enterprise Java and cloud application productivity while decreasing development time using the...
Pro Spring Boot is your authoritative hands-on practical guide for increasing your Spring Framework-based enterprise Java and cloud application productivity while decreasing development time using the...
org.springframework.aop-3.0.4.RELEASE.jar org.springframework.asm-3.0.4.RELEASE.jar org.springframework.aspects-3.0.4.RELEASE.jar org.springframework.beans-3.0.4.RELEASE.jar org.springframework....
基于spring boot和vue的前后端分离的外卖系统包含手机端,后台管理. 2. 核心框架:Spring Boot 数据库层:Spring data jpa/Spring data mongodb 数据库连接池:Druid 缓存:Ehcache 前端:Vue.js 数据库:mysql5.5...
本文将详细介绍Spring Boot中如何使用HikariCP作为数据库连接池,包括其工作原理、优势分析、配置步骤以及代码示例。通过本文,读者将能够轻松集成HikariCP到Spring Boot项目中,从而提高数据库连接的性能和效率。 ...
Error creating bean with name 'org.springframework.web.servlet.handler.SimpleUrlHandlerMapping#0' defined in ServletContext resource [/WEB-INF/springMVC-servlet.xml]: Initialization of bean failed;...
赠送jar包:spring-boot-actuator-autoconfigure-2.3.12.RELEASE.jar; 赠送原API文档:spring-boot-actuator-autoconfigure-2.3.12.RELEASE-javadoc.jar; 赠送源代码:spring-boot-actuator-autoconfigure-2.3.12....
5. Spring boot JPA 连接数据库 6. Spring boot 配置 JPA 7. Spring boot 整合 JPA 保存数据 8. Spring boot 使用 JdbcTemplate 保存数据 9. Spring boot 常用配置 10. Spring boot 静态资源处理 11. Srping ...
spring-boot-helloWorld:spring-boot的helloWorld版本 spring-boot-mybaits-annotation:注解版本 spring-boot-mybaits-xml:xml配置版本 spring-boot-mybatis-mulidatasource:springboot+mybatis多数据源最简解决...
1.Spring Boot 整合 JDBC 案例 2.Spring Boot 整合 Druid 数据源案例 3.Spring Boot 整合 MyBatis 案例 4.Spring Boot 整合 JPA 案例
赠送jar包:spring-boot-configuration-processor-2.3.12.RELEASE.jar; 赠送原API文档:spring-boot-configuration-processor-2.3.12.RELEASE-javadoc.jar; 赠送源代码:spring-boot-configuration-processor-...
Spring技术内幕:深入解析Spring架构与设计原理.pdf
适用于对Spring Boot和数据库性能优化感兴趣的开发者、架构师和IT技术爱好者。无论您是正在寻求提升现有系统性能的资深开发者,还是正在学习新技术、探索更优解的新手,本文都将为您提供有价值的参考和启示,特别是...
从零开始学Spring Boot,没有积分的可以...(1)spring boot起步之Hello World【从零开始学Spring Boot】: http://412887952-qq-com.iteye.com/blog/2291500 (2)Spring Boot返回json数据【从零开始学Spring Boot】 ...
org.springframework.web.jar
基于spring boot和vue的前后端分离的外卖系统 包含手机端,后台管理功能 核心框架:Spring Boot 数据库层:Spring data jpa/Spring data mongodb 数据库连接池:Druid 缓存:Ehcache 前端:Vue.js 数据库:mysql5.5...
依赖关系及其用途Java 依赖项(在 build.gradle 中指定): org.springframework.boot :用于基础 MVC 框架org.springframework.security :用于各种与安全相关的目的,包括身份验证和散列org.springframework....
基于spring boot和vue的前后端分离的外卖系统 包含手机端,后台管理功能 本项目主要供交流学习,不建议商用。 技术选型 核心框架:Spring Boot 数据库层:Spring data jpa/Spring data mongodb 数据库连接池:Druid ...
1 Spring Boot概述与课程概要介绍20:33 2 Spring4 快速入门59:56 3 Spring4 扩展分析(一)35:49 4 Spring4 扩展分析(二)21:11 5 Spring Boot 快速入门24:01 6 Spring Boot 配置分析(一)38:26 7 Spring ...
Spring Boot干货系列:(八)数据存储篇-SQL关系型数据库之JdbcTemplate的使用:chapter8 Spring Boot干货系列:(九)数据存储篇-SQL关系型数据库之MyBatis的使用:chapter9,chapter9-2 Spring Boot干货系列:(十)...