创建数据库时的 H2 文件嵌入模式运行脚本(未初始化连接)
Posted
技术标签:
【中文标题】创建数据库时的 H2 文件嵌入模式运行脚本(未初始化连接)【英文标题】:H2 file embedded mode runscript on creating db(not initializing connection) 【发布时间】:2014-02-28 11:56:58 【问题描述】:我需要从备份脚本按需(第一次连接)创建 H2 文件 db。 据我了解,只能通过使用两个不同的网址来完成:
jdbc:h2:file:sampledb;INIT=RUNSCRIPT FROM 'create.sql'; (应该只执行一次)
jdbc:h2:file:sampledb;IFEXISTS=TRUE;
问题是应用程序连接到 db 来自 JNDI,所以我应该只设置一个正确的 url。是否存在根据某些条件指定参数的能力? 以及如何从 H2 获得这个条件? (类似于 jdbc:h2:file:sampledb;!dbixists=runscript...)。还是允许一些三元运算?
【问题讨论】:
No.(( 只是能够连接到任何数据库的自定义应用程序(由用户指定)。所以任务是有示例工作连接(提供有关应用程序示例的教程数据)。但是有经验的用户不需要这些数据。 【参考方案1】:我只需在create.sql
脚本中包含IF NOT EXIST
子句并每次运行它。只有在根本没有合适的模型时才会创建数据库模型。
【讨论】:
谢谢,我想到了这个。但实际上我对 H2 引擎并不熟悉——我怀疑它会成为性能的瓶颈。至于创作使用了大量的数据。因此,检查每个语句的存在性不如检查每个连接一次。至少它可能只是一种解决方法。如果没有其他变体。以上是关于创建数据库时的 H2 文件嵌入模式运行脚本(未初始化连接)的主要内容,如果未能解决你的问题,请参考以下文章