如何将H2数据库加载到内存中?

时间:2013-09-03 11:16:33

标签: h2

我在嵌入模式下使用H2编写了一组单元测试。无论测试对数据库做出什么改变都会留在那里。

我知道推荐的方法是创建一个空白的内存数据库,并在打开连接时创建模式。

然而,我正在寻找另一种方法。我想 -

  1. 使用嵌入式数据库文件初始化内存数据库。
  2. 或者使用嵌入式数据库,以便在连接关闭后立即丢弃所有更改。
  3. 我怎样才能做到这一点?

2 个答案:

答案 0 :(得分:1)

在与此类似的情况下,我所做的是编写创建数据库并填充表的SQL脚本。然后,应用程序使用Flyway DB应用数据库迁移。

其他可能性是创建数据库并从CSV文件加载表。另一种方法是使用不同的应用程序创建数据库,并使用SCRIPT命令创建文件以创建备份。您的主应用程序必须运行RUNSCRIPT命令才能还原数据库。

答案 1 :(得分:0)

我使用创建表和其他对象的SQL脚本和/或填充它们,并在应用程序开始时运行这些脚本。

还可以创建已填充的磁盘数据库的副本,将其打包到ZIP / JAR存档中,然后将其打开read only,以用于重新创建和填充内存数据库。