数据库版本管理工具Flyway——基础篇

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
云数据库 RDS MySQL,高可用系列 2核4GB
简介: Flyway 默认规约 SQL 脚本文件默认位置是项目的源文件夹下的db/migration 目录。 Java 代码默认位于db.migration 包。 SQL 脚本文件及Java 代码类名必须遵循以下命名规则:V[_][__description] 。

 

Flyway 默认规约 SQL 脚本文件默认位置是项目的源文件夹下的db/migration 目录。
Java 代码默认位于db.migration 包。
SQL 脚本文件及Java 代码类名必须遵循以下命名规则:V[_][__description] 。
版本号的数字间以小数点(. )或下划线(_ )分隔开,版本号与描述间以连续的两个下划线(__ )分隔开。
如V1_1_0__Update.sql 。
Java 类名规约不允许存在小数点,所以Java 类名中版本号的数字间只能以下划线进行分隔。

<plugin>  
       <groupId>com.googlecode.flyway</groupId>  
       <artifactId>flyway-maven-plugin</artifactId>  
       <version>1.7</version>  
       <dependencies>  
              <dependency>  
                     <groupId>mysql</groupId>  
                     <artifactId>mysql-connector-java</artifactId>  
                     <version>${mysql.connector.version}</version>  
              </dependency>  
       </dependencies>  
       <configuration>  
              <driver>com.mysql.jdbc.Driver</driver>  
              <url>jdbc:mysql://localhost/flywaydemo?useUnicode=true&amp;characterEncoding=utf-8</url>  
              <user>root</user>  
              <password></password>  
   
              <!-- 设置接受flyway进行版本管理的数据库,多个数据库以逗号分隔 -->  
              <schemas>flywaydemo</schemas>  
              <!-- 设置存放flyway metadata数据的表名 -->  
              <table>schema_version</table>  
              <!-- 设置flyway扫描sql升级脚本、java升级脚本的目录路径或包路径 -->  
              <locations>  
                     <location>flyway/migrations</location>  
                     <location>com.kedacom.flywaydemo.migrations</location>  
              </locations>  
              <!-- 设置sql脚本文件的编码 -->  
              <encoding>UTF-8</encoding>  
              <!-- 设置执行migrate操作之前的validation行为 -->  
              <validationMode>ALL</validationMode>  
              <!-- 设置当validation失败时的系统行为 -->  
              <validationErrorMode>FAIL</validationErrorMode>  
       </configuration>  
</plugin>  

 

上面的插件配置包含了几方面的配置信息:

  • 声明插件
  • 声明数据库驱动的依赖包
  • Flyway 配置——数据库连接配置
  • Flyway 配置——Flyway 参数与行为配置

执行Maven 命令进行Flyway 操作(下面列出几种常用的操作)

  • mvn flyway:init (初始化Flyway metadata )
  • mvn flyway:migrate (执行Flyway 升级操作)
  • mvn flyway:validate (校验Flyway 数据正确性)

 

http://blog.csdn.net/nydia_lvhq/article/details/51362649

 

相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
存储 关系型数据库 数据库连接
flyway适配高斯数据库
flyway适配高斯数据库
360 0
|
3月前
|
SQL Java 数据库
使用Spring Boot和Flyway进行数据库迁移
使用Spring Boot和Flyway进行数据库迁移
|
1月前
|
SQL Java 数据库连接
数据库迁移不再难:Flyway 与 Liquibase 大比拼,哪个才是你的真命天子?
【9月更文挑战第3天】数据库迁移在软件开发中至关重要,尤其在使用 ORM 框架如 Hibernate 时。为确保部署时能顺利应用最新的数据库变更,开发者常使用自动化工具。Flyway 和 Liquibase 是当前流行的两种选择,均能有效管理数据库版本控制。Flyway 采用 SQL 脚本表示变更,简单易用;Liquibase 支持多种脚本格式,功能更强大,适合复杂项目。本文将对比这两种工具的特点,并通过示例展示各自的优缺点,帮助开发者根据项目需求做出合适的选择。
258 1
|
2月前
|
SQL 关系型数据库 MySQL
「Go开源」goose:深入学习数据库版本管理工具
「Go开源」goose:深入学习数据库版本管理工具
「Go开源」goose:深入学习数据库版本管理工具
|
5月前
|
容灾 Java 数据库
OceanBase数据库常见问题之spring boot应用增加了flyway的依赖但没执行如何解决
OceanBase 是一款由阿里巴巴集团研发的企业级分布式关系型数据库,它具有高可用、高性能、可水平扩展等特点。以下是OceanBase 数据库使用过程中可能遇到的一些常见问题及其解答的汇总,以帮助用户更好地理解和使用这款数据库产品。
|
SQL 数据库 开发工具
真香!flyway数据库版本控制
真香!flyway数据库版本控制
258 0
|
SQL Oracle 关系型数据库
SpringBoot + Flyway,自动化实现数据库版本控制
SpringBoot + Flyway,自动化实现数据库版本控制
|
SQL 存储 Oracle
Flyway数据库脚本管理工具使用经验
在常见的敏捷开发过程中,迭代的更新频繁出现,每个迭代数据库脚本也经常会更新,为了更好地管理项目中的数据库脚本,下面为大家介绍一款数据库脚本管理工具Flyway,希望对大家有帮助!
1259 1
Flyway数据库脚本管理工具使用经验
|
SQL druid Java
基于springboot+jpa 实现多租户动态切换多数据源 - 使用Flyway实现多数据源数据库脚本管理和迭代更新
基于springboot+jpa 实现多租户动态切换多数据源 - 使用Flyway实现多数据源数据库脚本管理和迭代更新
1630 0
基于springboot+jpa 实现多租户动态切换多数据源 - 使用Flyway实现多数据源数据库脚本管理和迭代更新
|
SQL 安全 JavaScript
SpringBoot整合Flyway完成数据库持久化迭代更新
每次服务的代码更新部署,难免会存在`数据库结构`的变更以及`字典数据的添加`,手动`执行更新脚本`是一个`耗时耗力`的工作,而且还会出现遗漏或者其他状况,`SpringBoot`内部集成了一个自动执行数据库脚本的第三方依赖`Flyway`来解决这个繁琐的问题。