对于我正在处理的一个项目(Spring/struts 2/hibernate),我们决定使用 h2 进行单元测试,使用 MySQL 进行生产存储,并在 liquibase 中管理方案,非常标准的票价,但我们一直遇到的问题是h2 和 MySQL 在很多方面都不同,例如它们如何处理时间戳和触发器。到了我开始后悔使用 h2 的地步,因为不匹配导致的额外头痛开始超过它的好处。我的问题是,是否还有其他内存/本地文件数据库的行为更像 MySQL?显然,对于集成测试,我们仍将使用 MySQL,但能够进行单元测试而无需将 liquibase 文件变成一个巨大的 hack,也不必确保本地 MySQL 数据库正在运行。