gpt4 book ai didi

playframework-2.4 - (Play 2.4.2, Play Slick 1.0.0) 如何在测试中将数据库 Evolutions 应用到 Slick 托管数据库?

转载 作者:行者123 更新时间:2023-12-04 07:42:05 25 4
gpt4 key购买 nike

我想针对 Play Slick 托管数据库编写数据库集成测试,并使用 Play 文档中描述的帮助程序方法应用和取消应用进化,即 Evolutions.applyEvolutions(database)Evolutions.cleanupEvolutions(database) .然而,这些需要 play.api.db.Database从我所看到的无法掌握的实例。 jdbc库与 play-slick 冲突,那么如何从 slick 获取数据库实例?我使用以下内容来获取一个用于运行 slick 查询的 slick 数据库 def:

val dbConfig = DatabaseConfigProvider.get[JdbcProfile]("my-test-db")(FakeApplication())  
import dbConfig.driver.api._
val db = dbConfig.db

谢谢,

莉安娜

最佳答案

这是我使用 Guice 的方法:

我用 Guice 注入(inject):

lazy val appBuilder = new GuiceApplicationBuilder()

lazy val injector = appBuilder.injector()

lazy val databaseApi = injector.instanceOf[DBApi] //here is the important line

(您必须导入 play.api.db.DBApi。)

在我的测试中,我只需执行以下操作(实际上我使用其他数据库进行测试):
override def beforeAll() = {
Evolutions.applyEvolutions(databaseApi.database("default"))
}

override def afterAll() = {
Evolutions.cleanupEvolutions(databaseApi.database("default"))
}

(我使用的是 Scalatest,但它与其他测试框架相同。)

关于playframework-2.4 - (Play 2.4.2, Play Slick 1.0.0) 如何在测试中将数据库 Evolutions 应用到 Slick 托管数据库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31884182/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com