flyway的使用

 

官网地址

flyway和liuqiubase对比

为什么使用flyway?

    进行数据库版本管理,迁移,摆脱人工手动执行脚本或者手动更改数据库字段的尴尬(特别是数据库比较多的时候).

使用背景

     在做一个框架平台的时候,因为多个项目和平台并行开发,导致平台每次进行版本升级的时候需要兼顾n多数据库的更新.

flywaydb的命名规则

如:V1__2014_4_13.sql ,V开头+版本号+双下划线+描述,描述中可以有下划线,后缀为sql.

支持的数据库

目前Flyway支持的数据库还是挺多的,包括:Oracle, SQL Server, SQL Azure, DB2, DB2 z/OS, MySQL(including Amazon RDS), MariaDB, Google Cloud SQL, PostgreSQL(including Amazon RDS and Heroku), Redshift, Vertica, H2, Hsql, Derby, SQLite, SAP HANA, solidDB, Sybase ASE and Phoenix

默认版本记录表

schema_version

相关命令
清空数据库(慎用,会删除所有的数据库对象,包括表/视图/存储过程...),可以执行以下语句:

flyway clean
如果想恢复最新版本数据库结构,可以先清空数据库,再执行以下语句:

flyway migrate
如果想恢复特定版本数据库结构,可以先清空数据库,再执行以下语句:

flyway migrate -target=1.0.1.002
如果想查看当前数据库状态信息,可以执行以下语句:

flyway info
Flyway还有validate,baseline,repair等命令,并且支持Maven

Maven使用示例

  

       
                org.flywaydb
                flyway-maven-plugin
                5.2.4
                
                    jdbc:mysql://localhost:3306/20190124
                    portals
                    java
                    true
                    true
                    false
                    UTF-8
                    fsl_schema_version
db/migration/
mvn flyway:migrate

或者命令指定数据库

          
              true
          


            
                    org.flywaydb
                    flyway-maven-plugin
                    5.2.4
                    
                        ${flyway}
                    
                
                    
                    update
                    process-resources
                    
                        ${db.url}
                        ${db.user}
                        ${db.password}
                        true
                        true
                        false
                        UTF-8
                        fsl_schema_version
db/migration/
migrate

执行更新命令则为

mvn process-resources -D flyway=false -D db.url=jdbc:mysql://127.0.0.1:3306/20190124 -D db.user=portals -D db.password=java

flyway的使用_第1张图片

flyway的使用_第2张图片

注意

 1.特别要注意脚本文件的正确性,一定要保证脚本的正确,否则脚本执行到一半发生错误就需要手动修复

 2.脚本文件如果已经执行过,便不要在进行任何更改(否则无法通过校验)

 3.如果使用了flyway进行版本管理,就不要单独执行任何sql,以保证flyway的脚本完整性

你可能感兴趣的:(Maven和Gradle)