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

说明:

(1)Spring Boot 版本:2.0.0.RELEASE

(2)Flyway版本:5.0.7

前言:

       在上一节中spring boot使用了1.5.12.RELEASE,这里我们要看看2.0.0.RELEASE的一个使用情况。大体的思路和上一篇是使用的,这里我们在上一篇文章的基础上进行调整。

一、版本说明

       这里的Spring Boot版本使用的是2.0.0.RELEASE,那么对于Flyway的版本是5.0.7,这里从3.2.1到5.0.7版本的跨度还是很大的,至于多做了什么改变,这里就不详细展开说明,有兴趣的可以去了解下Flyway版本的升级情况。

二、准备工作

       在上一篇的基础上,我们需要将数据库中的所有表结构全部删掉,为什么要全部删除掉呢?在上面我们说到了Flyway的版本跨度是比较大的,这里Flyway的管理版本的表名称调整为了flyway_schema_history(3.2.1的是schema_version)。

三、测试

       到这里就可以运行测试了,顺利的话,会在数据库中看到之前的表和数据,另外就是Flyway管理版本信息的表:flyway_schema_history。

四、存放路径说明

       由于我们使用了默认的路径,如果你要修改默认的路径的话,在2.0.0版本之后,使用的是如下的配置了:

spring.flyway.locations=classpath:/db/migration

5.1.12的版本的是:

flyway.locations=classpath:/db/migration

五、配置说明

       对于2.x的版本,Flyway的配置加上了spring的前缀,如下配置:

# FLYWAY (FlywayProperties)spring.flyway.baseline-description= #spring.flyway.baseline-on-migrate= #spring.flyway.baseline-version=1 # Version to start migrationspring.flyway.check-location=true # Whether to check that migration scripts location exists.spring.flyway.clean-disabled= #spring.flyway.clean-on-validation-error= #spring.flyway.dry-run-output= #spring.flyway.enabled=true # Whether to enable flyway.spring.flyway.encoding= #spring.flyway.error-handlers= #spring.flyway.group= #spring.flyway.ignore-future-migrations= #spring.flyway.ignore-missing-migrations= #spring.flyway.init-sqls= # SQL statements to execute to initialize a connection immediately after obtaining it.spring.flyway.installed-by= #spring.flyway.locations=classpath:db/migration # The locations of migrations scripts.spring.flyway.mixed= #spring.flyway.out-of-order= #spring.flyway.password= # JDBC password to use if you want Flyway to create its own DataSource.spring.flyway.placeholder-prefix= #spring.flyway.placeholder-replacement= #spring.flyway.placeholder-suffix= #spring.flyway.placeholders.*= #spring.flyway.repeatable-sql-migration-prefix= #spring.flyway.schemas= # schemas to updatespring.flyway.skip-default-callbacks= #spring.flyway.skip-default-resolvers= #spring.flyway.sql-migration-prefix=V #spring.flyway.sql-migration-separator= #spring.flyway.sql-migration-suffix=.sql #spring.flyway.sql-migration-suffixes= #spring.flyway.table= #spring.flyway.target= #spring.flyway.undo-sql-migration-prefix= #spring.flyway.url= # JDBC url of the database to migrate. If not set, the primary configured data source is used.spring.flyway.user= # Login user of the database to migrate.spring.flyway.validate-on-migrate= #

Spring Boot 1.x的版本如下配置:

# FLYWAY (FlywayProperties)flyway.baseline-description= #flyway.baseline-version=1 # version to start migrationflyway.baseline-on-migrate= #flyway.check-location=false # Check that migration scripts location exists.flyway.clean-on-validation-error= #flyway.enabled=true # Enable flyway.flyway.encoding= #flyway.ignore-failed-future-migration= #flyway.init-sqls= # SQL statements to execute to initialize a connection immediately after obtaining it.flyway.locations=classpath:db/migration # locations of migrations scriptsflyway.out-of-order= #flyway.password= # JDBC password if you want Flyway to create its own DataSourceflyway.placeholder-prefix= #flyway.placeholder-replacement= #flyway.placeholder-suffix= #flyway.placeholders.*= #flyway.schemas= # schemas to updateflyway.sql-migration-prefix=V #flyway.sql-migration-separator= #flyway.sql-migration-suffix=.sql #flyway.table= #flyway.url= # JDBC url of the database to migrate. If not set, the primary configured data source is used.flyway.user= # Login user of the database to migrate.flyway.validate-on-migrate= #


购买完整视频,请前往:http://www.mark-to-win.com/TeacherV2.html?id=287