数据库迁移工具flyway
2021/11/25 19:11:48
本文主要是介绍数据库迁移工具flyway,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
flyway介绍
Flyway是一款数据库迁移工具,它让数据库迁移变得更加简单。它能像Git一样对数据库进行版本控制,支持命令行工具、Maven插件、第三方工具(比如SpringBoot)等多种使用方式。
相关概念
1.工作原理
使用Flyway时我们需要编写好数据库迁移的SQL脚本,比如V1__Initial_Setup.sql中初始化了三种表,V2__First_Changes.sql中又新增了两种表。Flyway会创建flyway_schema_history表,用于存储这些SQL脚本的执行情况,从而对数据库进行版本控制。当我们使用Flyway进行数据库迁移时,Flyway会根据flyway_schema_history表中的记录,自行决定需要执行哪些SQL脚本,从而实现数据库迁移。
2.脚本命名规范
为了能被Flyway正确执行,SQL迁移脚本需要遵循如下规范:
Prefix(前缀):V表示有版本号的数据库迁移,U表示一些数据库版本的回滚,R表示可重复执行的数据库迁移;
Version(版本号):Flyway会按照版本号的大小顺序来执行数据库迁移脚本;
Separator(分隔符):命名时使用双下划线分隔符;
Description(描述):用于描述该迁移脚本的具体操作说明;
Suffix(后缀):表示.sql文件。
3.相关命令
migrate:数据库迁移命令,会根据设置好的SQL脚本直接将数据库表升级至最新版本。
clean:删除数据库中所有的表,千万别在生产环境上使用。
info:打印所有关于数据库迁移的详细信息和状态信息。
validate:验证数据库迁移是否可用。
undo:对数据库迁移进行回滚操作。
baseline:以现有数据库为基准,创建flyway_schema_history表,大于基准版本的数据库迁移才会被应用。
repair:修复flyway_schema_history表。
结合springboot使用
0.项目结构
1.创建一个springboot项目
2.pom.xml
3.application.yml
4.sql脚本
V1__create_user.sql
CREATE TABLE IF NOT EXISTS `user`( `user_id` INT(11) NOT NULL AUTO_INCREMENT, `user_name` VARCHAR(100) NOT NULL COMMENT '用户姓名', `age` INT(3) NOT NULL COMMENT '年龄', `created_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP, `created_by` varchar(100) NOT NULL DEFAULT 'UNKNOWN', `updated_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP, `updated_by` varchar(100) NOT NULL DEFAULT 'UNKNOWN', PRIMARY KEY (`user_id`) )ENGINE=InnoDB DEFAULT CHARSET=utf8;
V2__add_user.sql
insert into `user`(user_name,age) values('lisi',33);
R__add_unknown_user.sql
insert into `user`(user_name,age) values('unknown',4);
5.启动Application
6.观察结果
这篇关于数据库迁移工具flyway的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-01后台管理开发学习:新手入门指南
- 2024-11-01后台管理系统开发学习:新手入门教程
- 2024-11-01后台开发学习:从入门到实践的简单教程
- 2024-11-01后台综合解决方案学习:从入门到初级实战教程
- 2024-11-01接口模块封装学习入门教程
- 2024-11-01请求动作封装学习:新手入门教程
- 2024-11-01登录鉴权入门:新手必读指南
- 2024-11-01动态面包屑入门:轻松掌握导航设计技巧
- 2024-11-01动态权限入门:新手必读指南
- 2024-11-01动态主题处理入门:新手必读指南