如何检查是不是需要升级 h2 数据库?

Posted

技术标签:

【中文标题】如何检查是不是需要升级 h2 数据库?【英文标题】:How to check if a h2 database needs to be upgraded?如何检查是否需要升级 h2 数据库? 【发布时间】:2013-02-26 16:55:36 【问题描述】:

在H2 download site 上有一个Database Upgrade Helper File 用于从1.1 升级到更新的版本。我想知道是否有一种很好且干净的方法来检查数据库是否需要升级。到目前为止,我所做的是使用新驱动程序打开与旧数据库的连接,捕获异常然后进行迁移。如果可能,我想在 Java 中进行检查。

【问题讨论】:

【参考方案1】:

如果您的类路径中有Database Upgrade Helper File,并且数据库是使用H2 1.1 版创建的,那么数据库会自动升级。

除此之外,您不需要升级数据库,因为数据库文件自 H2 版本 1.2 以来没有更改(使用 1.2.x 版本创建的数据库可以使用最新版本打开)。至少,这是计划。如果在某些情况下不起作用,请告诉我们问题所在。

【讨论】:

数据库是使用 H2 1.1 创建的,但我想使用 1.3。到目前为止,我正在使用来自 1.3 的 HelperRunScript 中的 Script 来导出/导入数据库。要查看我是否需要做任何事情,我检查以“.h2.db”结尾的文件(不喜欢捕捉异常)。你有什么不同的建议吗? 如果帮助 jar 文件在类路径中,自动升级也应该适用于 H2 版本 1.3。 自动升级听起来很酷,但如果我只想检查升级是否会发生(需要)怎么办?附带问题:自动升级比我正在做的导出/导入更快吗? 你可以查看源代码,查看org.h2.Driver,方法connect,以及对DbUpgrade.connectOrUpgrade的调用。 @ThomasMueller :我正在使用 Maven h2 数据库 1.1.119,但我面临的问题是它已损坏。意味着我正在使用我的网络应用程序,但有时当我打开 webUI 或尝试在数据库中添加数据时它已损坏。你能告诉我为什么我的数据库损坏了吗?

以上是关于如何检查是不是需要升级 h2 数据库?的主要内容,如果未能解决你的问题,请参考以下文章

Nginx 是不是支持以明文形式从 http/1.1 升级 http/2 (h2c)

检查 H2 db 文件是不是存在

H2数据库表大小

在 oracle 模式下升级 h2 数据库 jar 后选择语句失败

如果另一个 h2 选择关闭当前一个,我如何一次显示一个 h2?

access数据库和h2数据库的关系