• flyway7.1.1适配人大金仓postgres版本


    1、进入flyway github仓库下载flyway7.1.1版本源码,搜索7.1.1,下载地址为:https://github.com/flyway/flyway/releases

    2、解压源码, 新建目录kingbase,将postgres目录文件拷贝进kingbase,修改下文件名:

    3、修改KingbaseDatabaseType文件,源码如下:

    1. public class KingbaseDatabaseType extends DatabaseType {
    2. @Override
    3. public String getName() {
    4. return "Kingbase8";
    5. }
    6. @Override
    7. public int getNullType() {
    8. return Types.NULL;
    9. }
    10. @Override
    11. public boolean handlesJDBCUrl(String url) {
    12. if (url.startsWith("jdbc-secretsmanager:postgresql:")) {
    13. throw new org.flywaydb.core.internal.license.FlywayTeamsUpgradeRequiredException("jdbc-secretsmanager");
    14. }
    15. return url.startsWith("jdbc:kingbase8:");
    16. }
    17. @Override
    18. public String getDriverClass(String url, ClassLoader classLoader) {
    19. return "com.kingbase8.Driver";
    20. }
    21. @Override
    22. public boolean handlesDatabaseProductNameAndVersion(String databaseProductName, String databaseProductVersion, Connection connection) {
    23. return databaseProductName.startsWith("KingbaseES");
    24. }
    25. @Override
    26. public Database createDatabase(Configuration configuration, JdbcConnectionFactory jdbcConnectionFactory, StatementInterceptor statementInterceptor) {
    27. return new KingbaseDatabase(configuration, jdbcConnectionFactory, statementInterceptor);
    28. }
    29. @Override
    30. public Parser createParser(Configuration configuration, ResourceProvider resourceProvider, ParsingContext parsingContext) {
    31. return new KingbaseParser(configuration, parsingContext);
    32. }
    33. @Override
    34. public void setDefaultConnectionProps(String url, Properties props, ClassLoader classLoader) {
    35. props.put("applicationName", APPLICATION_NAME);
    36. }
    37. @Override
    38. public boolean detectUserRequiredByUrl(String url) {
    39. return !url.contains("user=");
    40. }
    41. @Override
    42. public boolean detectPasswordRequiredByUrl(String url) {
    43. // Postgres supports password in URL
    44. return !url.contains("password=");
    45. }

    4、修改DatabaseTypeRegister文件,在registerDatabaseTypes增加kingbase类型

    registeredDatabaseTypes.add(new KingbaseDatabaseType());

    5、修改下flyway-parent版本为7.1.1.1,flyway-core parent版本修改为7.1.1.1

    6、执行mvn install -Dmaven.test.skip=true 打包即可

  • 相关阅读:
    vivado 仿真读写bmp图片
    Elasticsearch安装配置
    java 把a.txt文件中的内容复制到当前项目目录下的b.txt文件中,2种方式比较复制效率 毫秒比较
    解锁Spring Boot AOP的魔力:优雅地管理交叉关注点
    BDD - BDD Automation Framwork 自动化框架
    机器学习的概念和类型
    深入探究 JVM 频繁 Full GC 的排查过程
    聊一聊TypeScript的相关知识点
    JavaScript基础知识11——运算符:赋值运算符
    vue3路由
  • 原文地址:https://blog.csdn.net/john1337/article/details/132780575