flyway在Windows下安装及基本使用

简介: 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的安装包下就有
相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。   相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情: https://www.aliyun.com/product/rds/mysql 
目录
相关文章
|
3月前
|
人工智能 JavaScript 开发工具
极速上手!Claude Code 原生支持 Windows 免WSL安装教程
Claude Code 现已支持 Windows 原生运行,无需 WSL 配置。本文提供详细安装教程,涵盖 Node.js 环境验证、Git 安装及 Claude Code 配置步骤,助你快速上手这一强大 AI 编程工具。
1695 5
|
3月前
|
存储 虚拟化 Windows
VMware安装Windows10
本案例介绍了在Windows系统上使用VMware Workstation 17.5 Pro安装配置Windows 10虚拟机的详细步骤,包括所需设备、软件下载链接、虚拟机设置及系统安装全过程。
499 133
VMware安装Windows10
|
4月前
|
Ubuntu Unix Linux
在Windows上轻松安装和使用Ubuntu的方法详解
继续点击“Continue”按钮以继续安装流程,随后选择清理磁盘并安装操作系统的选项。 接下来,在安装过程中,你需要选择时区。为了与你的地理位置相匹配,请选择中国上海作为你的时区设置。 在安装过程中,你还需要设置计算机的名称以及账号密码。请务必牢记这些信息,因为它们将作为你登录系统的凭证。
|
2月前
|
安全 Ubuntu iOS开发
Nessus Professional 10.10 Auto Installer for Windows - Nessus 自动化安装程序
Nessus Professional 10.10 Auto Installer for Windows - Nessus 自动化安装程序
167 3
Nessus Professional 10.10 Auto Installer for Windows - Nessus 自动化安装程序
|
3月前
|
安全 数据安全/隐私保护 Windows
ZyperWin++使用教程!让Windows更丝滑!c盘飘红一键搞定!ZyperWin++解决系统优化、Office安装和系统激活
ZyperWin++是一款仅5MB的开源免费Windows优化工具,支持快速优化、自定义设置与垃圾清理,兼具系统加速、隐私保护、Office安装等功能,轻便无广告,小白也能轻松上手,是提升电脑性能的全能管家。
1141 0
|
4月前
|
Ubuntu Linux Windows
如何在Ubuntu系统中安装Wine,借此来运行Windows程序
熟悉的登录画面出现,在Ubuntu系统中扫描登录微信程序。
|
4月前
|
Ubuntu Linux Shell
手把手教你安装适用于Linux的Windows子系统——Ubuntu
重启完成,你看看重新打开Ubuntu是不是发生了变化,等待几分钟,系统配置完成,根据提示设置用户名和密码即可
|
4月前
|
Ubuntu Linux 数据安全/隐私保护
Windows上快速安装Linux子系统Ubuntu
Installing, this may take a few minutes...WslRegisterDistribution failed with error: 0x800701bcError: 0x800701bc WSL 2 ?????????????????? https://aka.ms/wsl2kernelPress any key to continue... 原因是 wsl1 升级到 wsl2 之后,内核却没有升级。 解决:下载最新的wsl安装包(wsl安装包)