赞
踩
添加依赖
<dependency>
<groupId>org.flywaydb</groupId>
<artifactId>flyway-core</artifactId>
<version>6.5.7</version>
</dependency>
配置:
java
spring:
flyway:
#是否启用
enabled: true
# 可以支持多个location, 用','隔开
locations: classpath:db/migration
#是否创建元数据表
validate-on-migrate: true
# flyway 的 clean 命令会删除指定 schema 下的所有 table, 生产务必禁掉。这个默认值是
false 理论上作为默认配置是不科学的。V9版本中默认值为true。
clean-disabled: true
# 说明
baseline-description: baseline init
# 如果数据库不是空表,需要设置成 true,否则启动报错
# 设置为true后flyway将在需要baseline的时候,自动执行一次baseline。
baseline-on-migrate: true
# 版本控制日志表,默认flyway_schema_history,不同系统建议修改数据
table: flyway_history_table_${spring.application.name}
前缀+版本号(以.或者_分隔)+分隔符(双下划线__)+脚本名.sql
举例:V1.6.0__ADD_xxx.sql R__clean.sql(无版本号)
V
开头表示仅执行一次;优先级高于R
执行;文件不可被删除、修改。R
开头表示重复执行;多个R执行顺序按命名顺序来。命令格式:
flyway-6.0.3/flyway migrate -url=jdbc:postgresql://postgresql.host:5432/ngsoc -user=postgres -password=${DB_PASS} -schemas=public -table=flyway_history_table_${SERVER} -locations=filesystem:${BASE_DIR}/db -baselineVersion=0 -baselineOnMigrate=true
命令 | 说明 |
---|---|
Migrate | 把数据库默认数据库迁移到最新版本 |
Clean | 清除指定库下所有的对象,包括table、view、triggers…,让数据库变成空的状态。 |
Info | 打印所有Migrations的详细和状态信息 |
Validate | 验证已经应用的Migrations是否有变更,Flyway是默认是开启验证的。 |
Baseline | 针对已经存在表结构的数据库的一种解决方案,即实现在非空数据库中新建Metadata表,并把Migrations应用到该数据库。 |
Repair | 修复Metadata表,该操作在Metadata表出现错误时是非常有用的。 |
商业版才有。
维度 | Flyway | Liquibase |
---|---|---|
可观测性 | 通过数据库schema历史表查看变更记录。 | 可以通过页面查看所有变更记录 |
跨平台 | 不支持跨平台 | 支持跨平台。 |
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。