我想为我的存储库创建集成测试。生产数据库是Sybase,它由多个目录组成,其中有多个模式。
在我的代码中,我使用多个查询我在不同的目录中选择数据:例如:
select *
from catalog_a.schema_a.table_1 aa1, catalog_b.schema_a.table_2 ba2
where aa1.c1 = ba2.c2
因此,对于测试,我想创建嵌入式数据库,如H2,HSQLDB或其他不同的东西。我试图找到一些可以让我用多个目录模拟prod db的东西,但我无法使它工作。请建议并提出解决方案。
我在java / spring中编写应用程序。这里的另一个技巧是我的应用程序只创建一个DataSource到数据库。
答案 0 :(得分:0)
HSQLDB仅支持单个目录,并且在查询中指定目录时会检查名称。您可以将目录名称从默认PUBLIC更改为其他名称。例如:
ALTER CATALOG public RENAME TO to catalog_a
但不支持使用两个不同的目录名称。
如果两个目录中的模式或表名不同,则可以修改HSQLDB的源代码,并在方法org.hsqldb.ParserDQL.checkValidCatalogName(String name)