如何在单个 Java 应用程序中使用两个 PostgreSQL DB 版本?

Posted

技术标签:

【中文标题】如何在单个 Java 应用程序中使用两个 PostgreSQL DB 版本?【英文标题】:How to use two PostgreSQL DB versions in a single Java Application? 【发布时间】:2021-10-29 19:53:55 【问题描述】:

在我们的 Java 项目中,我们已经连接了两个 DB,以使用两个连接池获取数据。

但是现在我们的一个数据库升级到了 PostgreSQL 12,而另一个数据库使用了旧的 PostgreSQL 8 版本。

我们在项目中导入了“postgresql-42.2.11.jar”,这个jar可以连接两个版本还是应该导入旧的“postgresql-8.1-407.jdbc3.jar”。 jar”。如果是这样,我们会因为使用两个 PostgreSQL jar 而出现任何错误吗?

但令人惊讶的是,该项目在本地系统中工作,完美地将两个版本的 DB 与一个 jar 连接(“postgresql-42.2.11.jar”),只是抛出一个警告“警告 [http-nio-8084-exec-55] org.postgresql.jdbc.PgConnection。不支持的服务器版本:8.1.11",

但在 linux 服务器上运行后它无法正常工作,它会抛出一个突然的错误,如“Exception org.postgresql.util.PSQLException: FATAL: invalid value for parameter "TimeZone": "Asia/Kolkata"”。

【问题讨论】:

新驱动程序应该可以使用旧数据库。也许旧安装中没有定义那个时区。 【参考方案1】:

在我看来,“加尔各答”拼写直到 2008 年 6 月才添加,首次出现在 v8.1.12 中,比您使用的版本更新。

【讨论】:

好的,但是我应该怎么做才能解决这个问题。不过,感谢您的回答。 升级非常旧的数据库,或者如果您在某处明确设置时区,请将其更改为采用旧拼写。

以上是关于如何在单个 Java 应用程序中使用两个 PostgreSQL DB 版本?的主要内容,如果未能解决你的问题,请参考以下文章

如何在单个路由中解组 POST 参数和 JSON 正文?

我如何在单个提取请求中调用两个 NSPredicate。核心数据 iOS Swift

既然 /[post-id] 在 v2.4 中已被弃用,我们应该如何检索单个帖子?

java 单个java类文件中使用的两个对象

如何在单个按钮单击或事件上执行两个任务

REST - 使用单个 POST 创建嵌套资源