flyway在Windows下安装及基本使用

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介: flyway在Windows下安装及基本使用

Flyway是一个开源的数据库迁移工具,用于管理和自动化数据库架构的演进。它允许开发人员和团队对数据库进行版本控制,并通过简单的命令行或脚本化操作管理数据库结构和数据的变更。

  • 官网下载:https://flywaydb.org/download
  • 这里下载的是社区免费版,flyway也提供了专业版和社区版,都是收费的
  • 下载完成后配置好对应的环境变量:flyway -v
    在这里插入图片描述

1. flyway中的SQL脚本命名

  • 在Flyway中,SQL脚本的命名遵循一定的规则。通常,脚本文件的命名由以下组成:

1、版本号(Version):版本号是指脚本的唯一标识符,用来指示脚本在迁移序列中的顺序。它通常是一个数字或者包含数字的字符串,并且按照一定的命名约定进行排序,例如使用前缀"V"或者"R"加上版本号,如"V1_1"或"R2.0.3"。

2、描述性名称(Description):描述性名称是可选的,但它可以帮助更好地理解脚本的目的和功能。描述性名称通常用下划线或连字符分隔单词,例如"create_table_users"或"add_column_to_orders".

3、文件扩展名(Extension):脚本文件的扩展名通常为.sql,表示它是一个SQL脚本文件。

image.png

V1_1__create_table_users.sql
R2.0.3__add_column_to_orders.sql
  • Flyway对于版本号的排序是基于字典顺序的,选择一种适合项目需求的版本号命名约定,以确保脚本按正确的顺序执行

2. flyway执行SQL脚本演示

  • 如下演示批量执行mysql的脚本,准备好的SQL脚本:
ALL_0_1110__xxx.sql
ALL_1_1_130__xxx.sql
ALL_1_1_131__xxx.sql
  • 对应的脚本路径:
E:\xdr project\mysql\all-sql
  • 执行以下flyway命令,表示在对应的数据库中执行上述脚本
flyway -locations="filesystem:E:\xdr project\mysql\all-sql", -driver=com.mysql.jdbc.Driver -url=jdbc:mysql://127.0.0.1:3306/test_flyway -user=root -password=root migrate
  • 注意:filesystem 对应的路径的路径要用 " " ,不然有点时候识别不了路径
  • 或者不用上面配置的执行路径和driver、url、password,直接在flyway安装包根路径下的 conf 目录下 flyway.conf,里面有对应的:
    image.png
flyway.url=jdbc:mysql://127.0.0.1:3306/test_flyway
flyway.driver=com.mysql.jdbc.Driver
flyway.user=root
flyway.password=root
flyway.locations=filesystem:\\E:\xdr project\mysql\all-sql
  • Windows下的 locations 建议这样配置,有的时候很容易识别不了路径
  • 配置好数据源信息后,执行命令,效果也是和上面一样的:
flyway migrate
  • 最后查看mysql数据库中是否创建了脚本中的表或数据

3. flyway中设置 ${CURRENT_DATE} 为当前时间的值

  • 执行上述脚本的时候发现一个问题,脚本中包含执行的时候报错:
insert into xdr_info(a, b) 
values('filemanage','${CURRENT_DATE}');
  • 报错信息:
${
  
  CURRENT_DATE}.  Check your configuration!
Caused by: No value provided for placeholder: ${
  
  CURRENT_DATE}.  Check your configuration!
  • Flyway 是一个数据库迁移工具,会根据其自身的配置和规则来解析和执行 SQL 脚本。对于占位符 ${CURRENT_DATE},Flyway 需要通过配置文件或命令行参数提供具体的值。如果没有为该占位符提供值,Flyway 将无法解析。
  • 需要在 flyway.conf 中配置 ${CURRENT_DATE},如:
flyway.placeholders.CURRENT_DATE=${java.time.LocalDateTime.now()}
  • 或者直接在执行命令的时候加上
flyway -placeholders.CURRENT_DATE=$(date +%Y-%m-%d) migrate
  • 这里演示的是mysql脚本执行,flyway工具可以和市面上大部分常见的数据库配合使用,对应的驱动啥的也不用单独再下载,都是flyway的安装包下就有
相关实践学习
如何快速连接云数据库RDS MySQL
本场景介绍如何通过阿里云数据管理服务DMS快速连接云数据库RDS MySQL,然后进行数据表的CRUD操作。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
10天前
|
关系型数据库 MySQL 数据库
【MySQL基础篇】MySQL概述、Windows下载MySQL8.0超详细图文安装教程
在这一章节,主要介绍两个部分,数据库相关概念及MySQL数据库的介绍、下载、安装、启动及连接。接着,详细描述了MySQL 8.0的版本选择与下载,推荐使用社区版(免费)。安装过程包括自定义安装路径、配置环境变量、启动和停止服务、以及客户端连接测试。此外,还提供了在同一台电脑上安装多个MySQL版本的方法及卸载步骤。最后,解释了关系型数据库(RDBMS)的特点,即基于二维表存储数据,使用SQL语言进行操作,格式统一且便于维护。通过具体的结构图展示了MySQL的数据模型,说明了数据库服务器、数据库、表和记录之间的层次关系。
【MySQL基础篇】MySQL概述、Windows下载MySQL8.0超详细图文安装教程
|
6天前
|
安全 关系型数据库 MySQL
Windows Server 安装 MySQL 8.0 详细指南
安装 MySQL 需要谨慎,特别注意安全配置和权限管理。根据实际业务需求调整配置,确保数据库的性能和安全。
43 9
|
1月前
|
机器学习/深度学习 并行计算 异构计算
WINDOWS安装eiseg遇到的问题和解决方法
通过本文的详细步骤和问题解决方法,希望能帮助你顺利在 Windows 系统上安装和运行 EISeg。
78 2
|
2月前
|
网络安全 Windows
Windows server 2012R2系统安装远程桌面服务后无法多用户同时登录是什么原因?
【11月更文挑战第15天】本文介绍了在Windows Server 2012 R2中遇到的多用户无法同时登录远程桌面的问题及其解决方法,包括许可模式限制、组策略配置问题、远程桌面服务配置错误以及网络和防火墙问题四个方面的原因分析及对应的解决方案。
|
2月前
|
NoSQL Linux PHP
如何在不同操作系统上安装 Redis 服务器,包括 Linux 和 Windows 的具体步骤
本文介绍了如何在不同操作系统上安装 Redis 服务器,包括 Linux 和 Windows 的具体步骤。接着,对比了两种常用的 PHP Redis 客户端扩展:PhpRedis 和 Predis,详细说明了它们的安装方法及优缺点。最后,提供了使用 PhpRedis 和 Predis 在 PHP 中连接 Redis 服务器及进行字符串、列表、集合和哈希等数据类型的基本操作示例。
73 4
|
3月前
|
数据安全/隐私保护 Windows
安装 Windows Server 2019
安装 Windows Server 2019
|
3月前
|
Windows
安装 Windows Server 2003
安装 Windows Server 2003
|
3月前
|
NoSQL Shell MongoDB
Windows 平台安装 MongoDB
10月更文挑战第10天
70 0
Windows 平台安装 MongoDB
|
3月前
|
Linux 网络安全 虚拟化
适用于Linux的Windows子系统(WSL1)的安装与使用记录
并放到启动文件夹,就可以开机自动启动了。
136 0
|
3月前
|
Windows
安装Windows XP系统
安装Windows XP系统