首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >flyway7.1.1适配人大金仓postgres版本

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

作者头像
johnhuster的分享
发布2023-10-16 20:00:01
发布2023-10-16 20:00:01
78800
代码可运行
举报
文章被收录于专栏:johnhusterjohnhuster
运行总次数:0
代码可运行

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

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

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

代码语言:javascript
代码运行次数:0
运行
复制
public class KingbaseDatabaseType extends DatabaseType {
    @Override
    public String getName() {
        return "Kingbase8";
    }

    @Override
    public int getNullType() {
        return Types.NULL;
    }

    @Override
    public boolean handlesJDBCUrl(String url) {
        if (url.startsWith("jdbc-secretsmanager:postgresql:")) {




            throw new org.flywaydb.core.internal.license.FlywayTeamsUpgradeRequiredException("jdbc-secretsmanager");

        }

        return url.startsWith("jdbc:kingbase8:");
    }

    @Override
    public String getDriverClass(String url, ClassLoader classLoader) {
        return "com.kingbase8.Driver";
    }

    @Override
    public boolean handlesDatabaseProductNameAndVersion(String databaseProductName, String databaseProductVersion, Connection connection) {
        return databaseProductName.startsWith("KingbaseES");
    }

    @Override
    public Database createDatabase(Configuration configuration, JdbcConnectionFactory jdbcConnectionFactory, StatementInterceptor statementInterceptor) {
        return new KingbaseDatabase(configuration, jdbcConnectionFactory, statementInterceptor);
    }

    @Override
    public Parser createParser(Configuration configuration, ResourceProvider resourceProvider, ParsingContext parsingContext) {
        return new KingbaseParser(configuration, parsingContext);
    }

    @Override
    public void setDefaultConnectionProps(String url, Properties props, ClassLoader classLoader) {
        props.put("applicationName", APPLICATION_NAME);
    }

    @Override
    public boolean detectUserRequiredByUrl(String url) {
        return !url.contains("user=");
    }

    @Override
    public boolean detectPasswordRequiredByUrl(String url) {
        // Postgres supports password in URL
        return !url.contains("password=");
    }

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

代码语言:javascript
代码运行次数:0
运行
复制
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 打包即可

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2023-09-09,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档