如何检查是不是需要升级 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 的Helper
和 RunScript
中的 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)
在 oracle 模式下升级 h2 数据库 jar 后选择语句失败