初见flyway

flyway (一种数据库版本控制工具 document)

两种文件 V 和 R

V: V 开头是不可重复执行的文件,每次修改完都该更改名称

R: R 开头是可重复执行的文件,需要保证内部sql都是可以重复执行的

名称格式: V__table_name.sql, R__table_name.sql

操作

baseline: 以现在数据库状态为基准,创建 flyway_schema_history表,以及相关信息填充 [类似初始化]

migrate: flyway根据sql的变化来进行更新

repair: 对最近的迁移失败做一次修复 [类似回滚]

undo: 撤销最近一次的版本升级,无论成功与否

clean: 删除表,包括 flyway_schema_history

info: 打印所有迁移的信息,包括版本变化

validate: 校验本次迁移

原理

在第一次执行flyway时候,会创建一个名为 flyway_schema_history 的表,其存放的是每次迁移的结果。

flyway在后续迁移动作时,会校验文件名称以及是否修改,然后做相应的动作。

  1. 对于R文件,如果在flyway_schema_history中有记录,则不能直接删除,需要保留文件[或者直接删除flyway_schema_history表中对该文件的所有记录 '不好']。
  2. 对于执行失败后,需要执行repair后,才能进行下一次操作,[或者将flyway_schema_history中记录success改为true [不好]]
相关推荐
巴里巴气14 分钟前
MongoDB索引及其原理
数据库·mongodb
程序员勋勋126 分钟前
Redis的String数据类型底层实现
数据库·redis·缓存
不修×蝙蝠1 小时前
MySQL 全详解:从入门到精通的实战指南
数据库·mysql·索引·最左前缀
我的ID配享太庙呀2 小时前
Django 科普介绍:从入门到了解其核心魅力
数据库·后端·python·mysql·django·sqlite
不辉放弃3 小时前
kafka的消费者负载均衡机制
数据库·分布式·kafka·负载均衡
拉姆哥的小屋3 小时前
用 Flask 打造宠物店线上平台:从 0 到 1 的全栈开发实践
数据库·oracle·flask
liliangcsdn4 小时前
mac neo4j install & verifcation
数据库·neo4j
Cyanto4 小时前
MyBatis-Plus高效开发实战
java·开发语言·数据库
-XWB-5 小时前
【Oracle】套接字异常(SocketException)背后隐藏的Oracle问题:ORA-03137深度排查与解决之道
数据库·oracle
睿思达DBA_WGX5 小时前
由于主库切换归档路径导致的 Oracle DG 无法同步问题的解决过程
运维·数据库·oracle