我已经设置了我的Play! (使用Slick)应用程序在运行测试时使用H2,并且迄今为止效果很好。我现在遇到了一个错误,因为使用小写字段和表名的纯SQL查询,而H2声称无法找到TABLE(全部为大写)。在Play中设置IGNORECASE和H2的其他选项!框架测试
现在我需要设置一个few options,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"
From the documentation,我知道我可以将设置传递给db.default.url
字符串,如
db.default.url="jdbc:h2:mem:play;MODE=PostgreSQL;"
但是m y default.url
设置适用于我的Postgres数据库。在这种情况下,有没有办法将MODE
和IGNORECASE
设置传递给H2?
我试图追加SET IGNORECASE TRUE;
到我的SQL查询,但我仍然收到相同的错误。
如果你使用带引号的大写标识符('create table“TEST”(...)'“)创建表名,那么你还需要使用引号当查询时。所以我想知道,为什么不用引号创建表('create table TEST'或'create table test')? –
jbnunn,请张贴执行查询的scala/slick代码,导致您的问题和确切的错误消息。你是如何创建表格的?另见http://stackoverflow.com/questions/17529384/h2-runscript-command-turns-all-table-names-into-uppercase – cvogt