我不能是唯一有这个问题的人,所以我正在寻找建议。
我们在 Oracle 上运行我们的应用程序,但我们的集成测试使用 h2 进行快速内存测试,该数据库在测试开始时由 DDL 脚本构建。
问题是 Oracle 和 h2/hsqldb 之间某些 DDL 命令的使用/语法不同。例如,今天我花了一些时间才意识到“grant select on ...”适用于 Oracle 中的序列,但仅适用于 h2 中的表。
在之前的项目中,我们有一个适配器来删除/翻译此类错误命令,这意味着我们的测试数据库运行的代码与我们在 prod 中实现的代码完全不同。虽然一切都经过了非常彻底的验收测试,但这意味着某些问题可能要到开发周期的后期才会被发现。
在我的最新项目中,我感觉我正在走同样的路——所以肯定其他人也已经踏上了这条路。
有什么建议么?我们正在使用 java/maven,所以欢迎使用合适的解决方案!