赞
踩
1、Flyway 介绍
官网地址:https://flywaydb.org/documentation/
Flyway is an open-source database migration tool. It strongly favors simplicity and convention over configuration.
Flyway是一款开源的数据库版本管理工具。它强烈支持简单性和约定,而不是配置。
It is based around just 7 basic commands: Migrate, Clean, Info, Validate, Undo, Baseline and Repair.
围绕7个基本命令:Migrate, Clean, Info, Validate, Undo, Baseline and Repair.
Migrations can be written in SQL (database-specific syntax (such as PL/SQL, T-SQL, ...) is supported) or Java (for advanced data transformations or dealing with LOBs).
It has a Command-line client. If you are on the JVM, we recommend using the Java API for migrating the database on application startup. Alternatively, you can also use the Maven plugin or Gradle plugin.
它有一个命令行客户端。如果您在JVM上,我们建议在应用程序启动时使用Java API迁移数据库。或者,您也可以使用Maven插件或Gradle插件。
And if that's not enough, there are plugins available for Spring Boot, Dropwizard, Grails, Play, SBT, Ant, Griffon, Grunt, Ninja and more!
Supported databases are Oracle, SQL Server (including Amazon RDS and Azure SQL Database), Azure Synapse (Formerly Data Warehouse), DB2, MySQL (including Amazon RDS, Azure Database & Google Cloud SQL), Aurora MySQL, MariaDB, Percona XtraDB Cluster, TestContainers, PostgreSQL (including Amazon RDS, Azure Database, Google Cloud SQL, TimescaleDB, YugabyteDB & Heroku), Aurora PostgreSQL, Redshift, CockroachDB, SAP HANA, Sybase ASE, Informix, H2, HSQLDB, Derby, Snowflake, SQLite and Firebird.
支持的数据库包括Oracle、SQL Server(包括Amazon RDS和Azure SQL数据库)、Azure Synapse(以前的数据仓库)、DB2、MySQL(包括Amazon RDS、Azure Database和Google Cloud SQL)、Aurora MySQL、MariaDB、Percona XtraDB Cluster、TestContainers、PostgreSQL(包括Amazon RDS、Azure Database、Google Cloud SQL、TimescaleDB、YugabyteDB和Heroku)、Aurora PostgreSQL、Redshift、,CockroachDB、SAP HANA、Sybase ASE、Informix、H2、HSQLDB、Derby、Snowflake、SQLite和Firebird。
Flyway可以独立于应用实现管理并跟踪数据库变更,支持数据库版本自动升级,并且有一套默认的规约,不需要复杂的配置,Migrations可以写成SQL脚本。
Flyway对数据库进行版本管理主要由Metadata表和6种命令完成,
2. Flyway 的特色
Flyway 大受欢迎是由于它具备如下优势:
简单 很是容易安装和学习,同时迁移的方式也很容易被开发者接受。
专注 专一于用作数据库迁移、版本控制而并无其它反作用。
强大 专为连续交付而设计,让Flyway在应用程序启动时迁移数据库。
3. Flyway 的工作机制
Flyway 须要在 DB 中先建立一个 metadata 表 (缺省表名为 flyway_schema_history), 在该表中保存着每次 migration (迁移)的记录, 记录包含 migration 脚本的版本号和 SQL 脚本的 checksum 值。
flyway命令行
flyway 提供命令行工具, 常用的命令包括:
Clean: 删除所有创建的数据库对象, 包括用户、表、视图等. 注意不要在生产库上执行 clean 操作.
Migrate: 对数据库依次应用版本更改.
Info: 获取目前数据库的状态. 那些迁移已经完成, 那些迁移待完成. 所有迁移的执行时间以及结果.
Validate: 验证已 Apply 的脚本是否有变更, Flyway 的 Migration 默认先做 Validate.
Baseline: 根据现有的数据库结构生成一个基准迁移脚本.
Repair: 修复命令尽量不要使用, 修复场景有: 1. 移除失败的 migration 记录. 2.已经应用的 SQL 脚本被修改, 我们想重新应用该 SQL 脚本.
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。