zoukankan      html  css  js  c++  java
  • 使用Flyway管理数据库更新

    文档:使用Flyway管理数据库更新.note
    链接:http://note.youdao.com/noteshare?id=d7ef6102042f58b9e2e01d9aff5d842e&sub=1677AD75832D440BA5BE61DEA45F52D9

     
    昨天听说了flyway,今天试了一下,整理笔记备忘。
     
    一、项目环境简介
    1、基于Spring Boot 2.2.5.RELEASE
    2、使用Spring Boot集成的flyway,不使用单独的maven插件
     
    二、集成步骤
    1、pom.xml中添加依赖
    <!-- flyway -->
    <dependency>
        <groupId>org.flywaydb</groupId>
        <artifactId>flyway-core</artifactId>
    </dependency>
     
    2、创建工作目录
     
    3、添加flyway配置
     
    4、使用示例
    4.1 假设在开发库中增加了一个表,并且有初始化数据,使用navicat瘵新增表的结构及数据导出,命名为V2.1.1__role_copy1.sql,拷贝到db/migration目录下
    4.2 启动项目,会自动执行V2.1.1__role_copy1.sql
    4.3 再增加一个表,导出SQL,重命名为V2.1.2__message_copy1.sql,拷贝到db/migration目录下
    4.4 启动项目,会自动执行V2.1.2__message_copy1.sql
    4.5
    4.6
     
    5、命名规则
    V + 版本号 +双下划线 + 描述 + 结束符(如.sql) 。
    注意:
    1. 版本号位数需要一致,并且只能新增,不能修改。如V2.0执行后,新增V2.0.1是不会执行的
    2. 如果db/migration中删除了某脚本,在flyway_schema_history表中要删除对应记录
    3. 如果某次执行失败,下次执行前,在flyway_schema_history表中要删除对应记录
     
    三、Flyway简介
    Flyway 是一款开源的数据库版本管理工具,它更倾向于规约优于配置的方式。Flyway 可以独立于应用实现管理并跟踪数据库变更,支持数据库版本自动升级,并且有一套默认的规约,不需要复杂的配置,Migrations 可以写成 SQL 脚本,也可以写在 Java 代码中,不仅支持 Command Line 和 Java API,还支持 Build 构建工具和 Spring Boot 等,同时在分布式环境下能够安全可靠地升级数据库,同时也支持失败恢复等。
    基于7个基本命令: 迁移清理信息验证撤消基线修复
     
    四、使用前后对比
    1、使用前,开发整理sql脚本,运维更新到生产环境
    2、使用后,开发将sql脚本打包到更新包中,项目启动自动执行sql脚本
     
     
    参考文章 :
  • 相关阅读:
    词法分析
    HTTP学习笔记
    Servlet入门
    UDP与TCP的区别
    C语言实现血型查询系统
    Mysql的索引、回表查询及覆盖索引浅析
    ReentranLock浅析
    CAS是个什么鬼?
    synchronize和volatile 小知识点总结
    写一个简单的阻塞队列
  • 原文地址:https://www.cnblogs.com/weijs/p/12930622.html
Copyright © 2011-2022 走看看