您可以在 play 应用程序中使用多个数据库。这里我举三个应用程序中的数据库的例子。(prod,dev,test)
为生产写入 conf 文件(在 conf 目录中)
prod.conf
include "application.conf"
db.default.driver=org.postgresql.Driver
db.default.url="jdbc:postgresql://localhost:5432/productiondatabase"
db.default.user="postgres"
db.default.password="postgres"
为develop编写conf文件
dev.conf
include "application.conf"
db.default.driver=org.postgresql.Driver
db.default.url="jdbc:postgresql://localhost:5432/developmentdatabase"
db.default.user="postgres"
db.default.password="postgres"
为测试编写配置文件
test.conf
include "application.conf"
db.default.driver=org.h2.Driver
db.default.url="jdbc:h2:mem:test"
db.default.user=sa
db.default.password=""
现在写 Global.scala(在应用目录中)
import play.api._
import play.api.Logger
import com.typesafe.config.ConfigFactory
import java.io.File
object Global extends GlobalSettings {
override def onLoadConfig(config: Configuration, path: File, classloader: ClassLoader,mode: Mode.Mode): Configuration = {
Logger.info("Application configuration file is loading with " + mode.toString + " mode")
val modeSpecificConfig = config ++ Configuration(ConfigFactory.load(s"${mode.toString.toLowerCase}.conf"))
super.onLoadConfig(modeSpecificConfig, path, classloader, mode)
}
}
$ play test => 它会自动连接到测试数据库。
$ play run => 它会自动连接到 dev 数据库。
$ play start =>它会自动连接到 prod 数据库。