我有一些数据要保留在数据库中。我发现我会使用Postgres来满足我的持久性需求。但是,我想使用更轻量级的H2数据库进行测试。我将以下定义为我的映射:
import slick.lifted.Tag
//import slick.driver.PostgresDriver.api._
import slick.driver.H2Driver.api._
class MyRepo(tag: Tag) extends Table[(Int, String)](tag, "MyRepo") {
def id = column[Int]("id", O.PrimaryKey)
def name = column[String]("name")
def * = (id, name)
}
从上面的导入中可以看出,我如何映射一次使用H2数据库,一次使用Postgres?我可以在Play框架的application.conf中配置不同的驱动程序和数据源,并为不同的环境获取适当的配置,但是如何为Postgres使用一次MyRepo类,为H2使用一次?
以下是我在application.conf中的内容:
myDbConf {
url = "jdbc:postgresql://localhost:5432/test"
dataSourceClass = "org.postgresql.ds.PGSimpleDataSource"
properties = {
databaseName = "mydb"
user = "myuser"
password = "secret"
}
numThreads = 10
}
我在做:
Database.forConfig("myDbConf", config)
获取对底层数据库的引用!