我不可能是唯一遇到这个问题的人,所以我正在寻找建议。
我们在 Oracle 上运行我们的应用程序,但我们的集成测试使用 h2 进行快速内存中测试,数据库是在测试开始时从 DDL 脚本构建的。
问题是一些 DDL 命令的使用/语法在 Oracle 和 h2/hsqldb 之间不同。例如,今天我花了一些时间才意识到“grant select on ...”适用于 Oracle 中的序列,但仅适用于 h2 中的表。
在之前的项目中,我们有一个适配器来删除/翻译此类错误命令,这意味着我们的测试数据库运行的代码与我们为生产实现的代码完全不同。虽然一切都经过了非常彻底的验收测试,但这意味着某些问题可能要到开发周期的很晚才会被发现。
在我最近的项目中,我感觉到我正在走同样的路——所以其他人肯定也走过了这条路。
有什么建议吗?我们正在使用 java/maven,所以欢迎适当的解决方案!
最佳答案
据我所知,没有这样的适配器。
无论如何,我会说你不会用这样的适配器实现你的目标。其一,Oracle 的特性集在任何其他解决方案中都不容易找到(并不是说这一定是 Oracle 的优势)。
关于java - Oracle 到 H2/hsqldb 等适配器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12095082/