【发布时间】:2013-09-03 11:16:32
【问题描述】:
我已经在嵌入式模式下使用 H2 编写了一组单元测试。测试对 DB 所做的任何更改都保留在那里。
我知道推荐的方法是创建一个空白的内存数据库,并在打开连接时创建架构。
但是我正在寻找一种替代方法。我愿意 -
- 使用嵌入式数据库文件初始化内存数据库。
- 或者使用嵌入式数据库,一旦连接关闭,所有更改都会被丢弃。
我怎样才能做到这一点?
【问题讨论】:
标签: h2
我已经在嵌入式模式下使用 H2 编写了一组单元测试。测试对 DB 所做的任何更改都保留在那里。
我知道推荐的方法是创建一个空白的内存数据库,并在打开连接时创建架构。
但是我正在寻找一种替代方法。我愿意 -
我怎样才能做到这一点?
【问题讨论】:
标签: h2
在与此类似的情况下,我所做的是编写创建数据库并填充表的 SQL 脚本。然后应用程序使用Flyway DB 应用数据库迁移。
其他可能性是创建数据库并从 CSV 文件加载表。另一种是使用不同的应用程序创建数据库并使用 SCRIPT 命令创建文件以创建备份。您的主应用程序必须运行 RUNSCRIPT 命令来恢复数据库。
【讨论】:
我使用创建表和其他对象和/或填充它们的 SQL 脚本,并在应用程序开始时运行这些脚本。
您还可以创建已填充的磁盘 DB 的副本,将其打包到 ZIP/JAR 存档中,然后将其打开 read only,用于重新创建和填充内存中的 DB。
【讨论】: