zoukankan      html  css  js  c++  java
  • Flyway记录

    Flyway

    是什么:如果说git是代码的版本控制,那么flyway就是数据库的版本控制

    解决问题:

    • 正如git解决协作开发的问题,flyway一样解决了多人协同设计数据库的问题
    • 修改或修复数据库结构
    • 修复错误数据

    竞品:Liquibase(https://www.liquibase.org/

    工作方式(https://flywaydb.org/getstarted/how),官网上有相关的图片介绍:

    基本上应用方式:

    1、增加表结构,这边建议分开DDL和DML,默认在 这个目录:db/migration(可以通过FlywayProperties的location值覆盖实现,在spring boot yml文件中一般是这样)

    flyway:
      locations:
        - db/migration
        - db/ddl

    2、修复错误的表结构或数据,注意文件的格式是 前缀__版本号__描述.后缀,一般是这样的

    V1_init_db.sql

    最近面试官有问到V可不可以用别的替代

    首先,可以改。通过配置覆盖,具体字段就不再描述了,很容易从配置类里面找到

    其次,可以用默认的R,表示可以重复执行,可以用于清除数据库的缓存数据或者常规产生的过期数据等

    其他一些常见的配置参数

    flyway.baseline-description对执行迁移时基准版本的描述.
    flyway.baseline-on-migrate当迁移时发现目标schema非空,而且带有没有元数据的表时,是否自动执行基准迁移,默认false.
    flyway.baseline-version开始执行基准迁移时对现有的schema的版本打标签,默认值为1.
    flyway.check-location检查迁移脚本的位置是否存在,默认false.
    flyway.clean-on-validation-error当发现校验错误时是否自动调用clean,默认false.
    flyway.enabled是否开启flywary,默认true.
    flyway.encoding设置迁移时的编码,默认UTF-8.
    flyway.ignore-failed-future-migration当读取元数据表时是否忽略错误的迁移,默认false.
    flyway.init-sqls当初始化好连接时要执行的SQL.
    flyway.locations迁移脚本的位置,默认db/migration.
    flyway.out-of-order是否允许无序的迁移,默认false.
    flyway.password目标数据库的密码.
    flyway.placeholder-prefix设置每个placeholder的前缀,默认${.
    flyway.placeholder-replacementplaceholders是否要被替换,默认true.
    flyway.placeholder-suffix设置每个placeholder的后缀,默认}.
    flyway.placeholders.[placeholder name]设置placeholder的value
    flyway.schemas设定需要flywary迁移的schema,大小写敏感,默认为连接默认的schema.
    flyway.sql-migration-prefix迁移文件的前缀,默认为V.
    flyway.sql-migration-separator迁移脚本的文件名分隔符,默认__
    flyway.sql-migration-suffix迁移脚本的后缀,默认为.sql
    flyway.tableflyway使用的元数据表名,默认为schema_version
    flyway.target迁移时使用的目标版本,默认为latest version
    flyway.url迁移时使用的JDBC URL,如果没有指定的话,将使用配置的主数据源
    flyway.user迁移数据库的用户名
    flyway.validate-on-migrate迁移时是否校验,默认为true.
  • 相关阅读:
    在进行页面的DIV CSS排版时,遇到IE6(当然有时Firefox下也会偶遇)浏览器中的图片元素img下出现多余空白的问题绝对是常见的对于该问题的解决方法也是“见机行事”。
    关于图片加载问题
    隐藏iframe边框
    设计模式-状态模式(State)
    软件设计原则
    设计模式-原型模式(Prototype)【重点:浅复制与深复制】
    设计模式-观察者模式(Observer)
    【Parallel】.Net 并行执行程序的使用心得
    个人对【依赖倒置(DIP)】、【控制反转(IOC)】、【依赖注入(DI)】浅显理解
    设计模式-建造者模式(Builder)
  • 原文地址:https://www.cnblogs.com/gabin/p/13503865.html
Copyright © 2011-2022 走看看