赞
踩
1. 简介
Flyway是一款数据库迁移(migration)工具。它帮助我们在不同环境进行数据库的同步,减少人为操作,避免数据了导入的顺序错误,同时也减少了遗漏的机会。可以把它想象成git,多人同时操作代码。
2.支持的数据库
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。
3.操作讲解
注:这里所用flyway-commandline-4.2.0,不入侵代码
1. 目录结构
以window版本进行讲解,Linux版本基本一致。
i:conf\flyway.conf (修改如下参数就行,其余参数设置根据需求,在做适配) flyway.url=jdbc:dbc:oracle:thin:@//127.0.0.1:0000/test flyway.user=test flyway.password=test ii:\drivers 这里采用的Oracle数据库,Flyway的drivers目录中没有存放Oracle驱动包,这里需手动添加。 iii:jars和jre是Flyway相关Java运行环境。 iv:lib Flyway相关jar包。 v:sql 存放Flyway所要执行的sql脚本 vi: flyway和flay.cmd用于执行命令 例如:window 1):win+R,输入cmd,打开命令窗口 2):进入flyway根目录 (cd C:\Users\liujh\Desktop\flyway\flyway-4.2.0\) 3):输入 flyway migrate等命令
2,脚本命名规则
a: Versioned--于版本升级, 每个版本有唯一的版本号并只能使用一次。版本号可以是数字加 . 的形式。(例:V2021.9.29__Add_new_table)
b: Undo--可为对应版本的常规 versioned migration 进行回退操作。(社区版不提供)
c: Repeatable--是指可重复加载的 migration, 一旦 SQL 脚本的 checksum 有变动, flyway 就会重新应用该脚本.
例:
V2021.9.29__Add_new_table
R__Add_new_table
4,常用命令
1,migrate
执行sql文件夹中的sql,更新到最新版本
2,baseline
对已经拥有表结构的数据库中实现添加Metadata表。注意:sql脚本执行,会从第二个V脚本开始,因为这个命令会以当前数据库版本为基线进行版本创建。
3,clean
清除掉对应数据库Schema中所有的对象,说白了,删库。但在生产环境务必禁用。
4,info
打印所有的Migrations的详细和状态信息。
5,repair
repair操作能够修复metaData表。
6,undo 撤销操作,社区版不支持。
7,validate 验证已经apply的Migrations是否有变更,默认开启的,原理是对比MetaData表与本地Migrations的checkNum值,如果值相同则验证通过,否则失败。
注:由于schema_verison是记录数据库的版本信息,因此flyway对其做了保护策略。如果要查看这张表,则必须给表名加双引号,如select * from “schema_version”;(这里是默认表名,可在配置文件中更改)
Flyway-commandline下载链接:https://flywaydb.org/documentation/usage/commandline/
Flyway官网:https://flywaydb.org/
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。