• flyway 社区版本使用团队(企业级)特性ignore-migration-patterns使用


    标题是ignore-migration-patterns使用,其实所有团队(企业级)特性都可以使用,只是要按照我给的思路研究下就可以了,其实也很简单,只是改配置。

    由于是破解的,直接放开到网上不太好,我就搞了一个vip,进行限流

    由于我的mysql是5.7的,所以依赖是

    1. <dependency>
    2. <groupId>org.flywaydbgroupId>
    3. <artifactId>flyway-coreartifactId>
    4. <version>7.15.0version>
    5. dependency>

    以下解决方案都是采用这个版本来进行的,其他版本未研究,如果需要可以根据我这把思路进行研究即可

    背景:

     由于公司环境比较多,同时项目依赖产品进行定制化,那意味着定制化项目的sql和在产品里不能使用,但是产品你的sql可以在定制化项目里使用,就是父子关系,但是具体操作时就会报错

    一、当开启validate-on-migrate 校验时,父项目找不到子项目的文件就会报错

    Detected applied migration not resolved locally: 1.0.3000. If you removed this migration intentionally, run repair to mark the migration as deleted.
     

    二、这个问题要解决,经过查看官网文档 ;

    有两种解决方案

    1、validate-on-migrate 进行关闭,但是关闭后所有的校验都无法使用了,,就是放开式,建议不用使用该方案;因为后期管理分混乱

    2、通过查看官网文档,

    ignoreMigrationPatterns 这个配置可以满足我,大家可以看看;当我配置后就报错了,

    提示是商业版本的,那不就gg了吗

    三、商业版本的特性怎么使用呢?

     1、推荐购买商业版本

    2、按照我的思路进行破解

          根据上面发现

    校验是通过加载配置抛出异常的,源码是有的,那意味着,我只要在初始化flyway之前把这个配置配置上去就可以了(这里有个前提,是所有功能的在这个版本都是有的,只是通过配置进行加载的,这还是可以破解,不像国产的开源,直接去除了源代码,破解了 也没办法使用);研究了通过spring定义bean定义时进行调整,发现太麻烦,第二个通过配置文件加载时也不行,因为设计到flyway的核心类进行加载,第三个就是我这边解决方案,通过自动注入方式进行调整

    也就是重写 FlywayAutoConfiguration 这个类;重写比较简单,把这个类的源码拷贝下来,放到项目里,

    这里所有配置都可以调整

    我这边具体调整在 

    设置true

    即可 

    最后的最后的别忘记了加

    @Primary 这个组件,大家都懂了吧,也就是在springboot加载flyway时动了手脚

    这样配置就生效了;

     启动也就正常了

    付源码:

    1. /*
    2. * Copyright 2012-2021 the original author or authors.
    3. *
    4. * Licensed under the Apache License, Version 2.0 (the "License");
    5. * you may not use this file except in compliance with the License.
    6. * You may obtain a copy of the License at
    7. *
    8. * https://www.apache.org/licenses/LICENSE-2.0
    9. *
    10. * Unless required by applicable law or agreed to in writing, software
    11. * distributed under the License is distributed on an "AS IS" BASIS,
    12. * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    13. * See the License for the specific language governing permissions and
    14. * limitations under the License.
    15. */
    16. import org.flywaydb.core.Flyway;
    17. import org.flywaydb.core.api.MigrationVersion;
    18. import org.flywaydb.core.api.callback.Callback;
    19. import org.flywaydb.core.api.configuration.FluentConfiguration;
    20. import org.flywaydb.core.api.migration.JavaMigration;
    21. import org.springframework.beans.factory.ObjectProvider;
    22. import org.springframework.boot.autoconfigure.AutoConfigureAfter;
    23. import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
    24. import org.springframework.boot.autoconfigure.condition.*;
    25. import org.springframework.boot.autoconfigure.flyway.*;
    26. import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration;
    27. import org.springframework.boot.autoconfigure.jdbc.JdbcTemplateAutoConfiguration;
    28. import org.springframework.boot.autoconfigure.orm.jpa.HibernateJpaAutoConfiguration;
    29. import org.springframework.boot.context.properties.ConfigurationPropertiesBinding;
    30. import org.springframework.boot.context.properties.EnableConfigurationProperties;
    31. import org.springframework.boot.context.properties.PropertyMapper;
    32. import org.springframework.boot.jdbc.DataSourceBuilder;
    33. import org.springframework.boot.jdbc.DatabaseDriver;
    34. import org.springframework.boot.sql.init.dependency.DatabaseInitializationDependencyConfigurer;
    35. import org.springframework.context.annotation.*;
    36. import org.springframework.core.convert.TypeDescriptor;
    37. import org.springframework.core.convert.converter.GenericConverter;
    38. import org.springframework.core.io.R
  • 相关阅读:
    亚马逊云科技产品测评』活动征文|通过使用Amazon Neptune来预测电影类型初体验
    网络传输性能netperf测试方法和下载
    Linux 下获取进程所在文件的路径
    xml中in的使用
    解锁前端Vue3宝藏级资料 第四章 VUE常用 UI 库 2 ( ailwind 后台框架)
    paddle 41 在paddledetection添加RotateScaleCopyPaste数据增强方法
    数论知识点总结(一)
    就业班 第三阶段(负载均衡) 2401--4.19 day3
    30秒完成在Docker Desktop中搭建kafka----你肯定没我快
    Python 算法交易实验41 GMM简单估计
  • 原文地址:https://blog.csdn.net/u011410254/article/details/126866422