美文网首页
flyway解决

flyway解决

作者: 源来是你啊 | 来源:发表于2020-07-07 17:26 被阅读0次
    flay基本参数配置说明
    # 数据库配置
    spring.datasource.platform=mysql
    spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
    spring.datasource.url=jdbc:mysql://localhost:3306/db_flyway?useUnicode=true&characterEncoding=UTF-8&autoReconnect=true&useSSL=false&serverTimezone=GMT%2B8
    spring.datasource.username=root
    spring.datasource.password=123456
    # 关闭jpa升级数据库
    spring.jpa.hibernate.ddl-auto=none
    
    # flyway配置
    
    # 禁止flyway执行 清空数据库操作 太过危险
    spring.flyway.clean-disabled=true
    # 是否启动flyway
    spring.flyway.enabled=true
    # 已经执行过的flyway文件不再执行
    spring.flyway.baseline-on-migrate=true
    spring.flyway.baseline-version=1
    # flyway自身依赖表的表名
    spring.flyway.table= flyway_schema_version
    # flyway文件的地址 可以放在文件系统中 filesystem:/var/db/migration/
    spring.flyway.locations= classpath:db/migration
    # 开发环境为true 生产环境为false 是否按照顺序执行
    spring.flyway.out-of-order=true
    # flyway 运行到指定的版本
    spring.flyway.target=20200616.10.29
    

    具体参数参见 [flyway参数详解](https://www.cnblogs.com/itplay/p/10974701.html

    flyway常见问题
    1. flyway文件编码:

    flyway可以指定文件编码,spring.flyway.encoding=xxx, 默认为utf-8格式,提交flyway文件时文件编码记得与环境变量中保持一致,否则会出现异常;

    2. flyway dev升级:

    如果升级到最新版本:直接將最新的flyway文件放到指定文件夾下即可(需要遵循对应的命名规则),需要注意的是版本需要大于原來的版本;flyway默认升级到最新版本;

    如果升级到指定版本:需要清空掉之前的flyway历史记录表的记录,然后指定环境变量spring.flyway.target=xxx,xxx 为指定的版本号;

    image.png

    值得注意的是:如果是使用jpa需要将jpa的自动生成数据库开关关闭,避免和flyway冲突;


    image.png
    3. flyway dev降级:

    根据官网提示:flyway暂不支持降级,https://flywaydb.org/documentation/faq#downgrade

    如果在万不得已的情况下,降级操作步骤:1.删除数据库所有表,然后指定环境变量spring.flyway.target=xxx(对应的目标版本),然后重启系统即可;

    4. flyway使用注意点;
    1. flyway文件只能追加,不能修改文件本身,如果之前flyway添加的数据有问题,需要新添加flyway文件然后再文件中执行脚本删除之前的有问题数据;
    1. 每次新建flyway文件需要再本地dev环境运行成功后才能push;
    1. flyway文件提交后,记得及时将flyway文件的改变同步到uat环境中;

    相关文章

      网友评论

          本文标题:flyway解决

          本文链接:https://www.haomeiwen.com/subject/spczqktx.html