设置IGNORECASE并在播放其他选项H2! 测试框架(Set IGNORECASE and

2019-10-18 21:01发布

我设置我的戏! (与油滑)应用程序运行测试时使用的H2,和它一直很大,到目前为止。 现在我发现了一个错误,因为它使用小写列名和表名的纯SQL查询和H2抱怨说,TABLE(全部大写)无法找到。

现在我需要设置几个选项 , IGNORECASE肯定,以及可能的MODE

当我安装我的数据库测试中,我使用

def fakeAppWithMemoryDatabase = FakeApplication(additionalConfiguration = inMemoryDatabase())

对于开发,我使用PSQL,所以在我application.conf文件,我有:

slick.db.driver=scala.slick.driver.H2Driver

db.default.driver=org.postgresql.Driver
db.default.url="jdbc:postgresql://localhost:5432/mydb"

从文档 ,我看我可以通过设置到db.default.url字符串,如

db.default.url="jdbc:h2:mem:play;MODE=PostgreSQL;"

但我default.url设置为我的Postgres数据库。 有没有一种方式,通过MODEIGNORECASE设置H2在这种情况下?

我试图追加SET IGNORECASE TRUE; 我的SQL查询,但我仍然收到了同样的错误。

Answer 1:

好吧, 基于关闭此合并入游戏! 代码,我想通了:

FakeApplication(additionalConfiguration = inMemoryDatabase(options = Map("MODE"->"PostgreSQL","IGNORECASE"->"TRUE")))

不幸的是, IGNORECASE是不是我还以为是我的表和列仍然需要以大写的H2正确地使用我的纯SQL查询。



Answer 2:

您需要DATABASE_TO_UPPER =假添加到您的网址。 它可以让你离开“”出来的。 有了这个,我会继续使用H2不然我也不会。 不知道为什么这个选项默认为true ...



文章来源: Set IGNORECASE and other options for H2 in a Play! Framework test