ARTICLE · INTELLIGENCE

战地情报 · 详情页

来自尧图项目组的一线实战观察与深度解析

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

flyway7.1.1适配人大金仓postgres版本 1、进入flyway github仓库下载flyway7.1.1版本源码搜索7.1.1下载地址为https://github.com/flyway/flyway/releasesyway7.1.1版本源码搜索7.1.1下载地址为https://github.com/flyway/flyway/releases2、解压源码 新建目录kingbase将postgres目录文件拷贝进kingbase修改下文件名3、修改KingbaseDatabaseType文件源码如下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类型registeredDatabaseTypes.add(new KingbaseDatabaseType());5、修改下flyway-parent版本为7.1.1.1flyway-core parent版本修改为7.1.1.16、执行mvn install -Dmaven.test.skiptrue 打包即可推荐阅读我将多年数据库版本管理实战经验整理成了一份完整指南涵盖Flyway配置、生产环境避坑、20个高频FAQ等适合团队引入或个人进阶数据库版本管理实战指南Flyway从入门到生产避坑
RELATED READING

延伸阅读

更多一线实战笔记与深度复盘,助您持续精进