当前位置:   article > 正文

flyway简介_flyway是什么

flyway是什么

flyway是什么,为什么需要flyway

Flyway是一款管理并跟踪数据库迁移(migrate)的数据库版本管理工具。它可以像SVN管理不同人的代码那样,管理不同人的sql脚本,从而做到数据库同步。
它可以帮助我们在不同环境保持数据库的同步,减少手工操作,同时也减少了遗漏的机会。

flyway可以集成在项目中,可以与Spring 框结合。在项目发版时,自动执行数据库脚本,无需人为执行数据库同步操作。

flyway工作原理

一言以蔽之:flyway通过历史记录表(flyway_schema_history)来记录版本历史。每次随项目启动时将会自动扫描在resources/db/migration下的文件并查询flyway_schema_history判断是否为新增文件。如果是新增的文件,则执行该迁移文件。如果不是,则忽略。

当flyway在一个空数据库执行时,它将直接创建一张默认名为flyway_schema_history的数据记录为空的历史记录表,这张表将被用来跟踪或记录数据库的状态。
尔后flyway将会开始扫描文档系统或项目classpath路径下的迁移文件。
在这里插入图片描述

flyway按版本号顺序排列迁移文件,并按序执行,并更新历史记录表中的内容:
在这里插入图片描述

当项目再次发版时,flyway会再次扫描迁移文件,然后将迁移文的版本号与历史记录表中的版本号进行对比。flyway会忽略版本号小于等于表中当前最大版本的迁移文件,剩余待执行迁移文件会按版本号升序执行。(译者注:并非真正忽略,而是会校验checksum值是否一致,以此来保证历史版本文件未被篡改。)
在这里插入图片描述

历史记录表变动如下:
在这里插入图片描述

所以每次当你打算升级数据库时(包含DDL、DML语句),只需要在指定路径下创建一个版本号大于历史记录表中当前最大的版本号的迁移文件即可。在下次flyway启动时(随项目启动或其他形式),数据库将会自动完成升级,你无须再手动执行脚本。

flyway与liquibase的对比

在这里插入图片描述

flyway的几种应用方式对比

在这里插入图片描述

maven方式

配置参考如下

<plugin>
    <groupId>org.flywaydb</groupId>
    <artifactId>flyway-maven-plugin</artifactId>
    <version>5.2.0</version>
    //latest 6.5.3
    <configuration>
        <url>jdbc:mysql://localhost:3306</url>
        <user>root</user>
        <password>root</password>
        <schemas>
            <schema>[your_schema]</schema>
        </schemas>
    </configuration>
</plugin>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14

执行如下命令

> mvn flyway:migrate

  • 1
  • 2

命令行模式

1、官网地址:

https://flywaydb.org/documentation/commandline/
  • 1

2、配置环境变量path
3、cmd,输入flyway查看是否配置成功
4、修改配置文件conf/flyway.conf

flyway.url=
flyway.user=
flyway.password=
flyway.cleanDisabled=true
flyway.baselineOnMigrate=true
  • 1
  • 2
  • 3
  • 4
  • 5

5、在sql文件下放置sql文件,同以上操作
6、在控制台,执行flyway migrate

项目中集成方式

【flyway项目中集成方式】

参考文档

1、https://flywaydb.org/getstarted/why
https://flywaydb.org/getstarted/how
https://flywaydb.org/documentation/
2、https://flywaydb.org/documentation/commandline/
3、https://github.com/liquibase/liquibase
4、https://www.liquibase.org/get-started/how-liquibase-works
5、https://www.liquibase.org/liquibase-vs-flyway
6、https://stackshare.io/stackups/flyway-vs-liquibase
7、mysql账号权限
在这里插入图片描述

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/AllinToyou/article/detail/595598
推荐阅读
相关标签
  

闽ICP备14008679号