【发布时间】:2019-02-13 23:25:57
【问题描述】:
说明:
嗨。我正在为我的应用程序使用Play framework 和Slick 和PostgreSQL。所以我设计了CI_Pipelines 并在我的application.conf 中配置它们。当我们像这样设置光滑的配置时:
play.evolutions.db.default {
enabled = true
autoApply=true
}
slick.dbs.default {
driver="slick.driver.PostgresDriver$"
db {
driver=org.postgresql.Driver
dbName=dbName
url="jdbc:postgresql://127.0.0.1/dbName"
user=***
password=***
}
}
在代码中(dao 文件):
@Singleton
class UserDao @Inject()(
protected val dbConfigProvider: DatabaseConfigProvider
)(implicit val ex: ExecutionContext) extends HasDatabaseConfigProvider[JdbcProfile] {
import driver.api._
val userTableQuery = TableQuery[UserTable]
所有工作都写EVOLUTION,play 为我们提供。
但是,如果您想设置其他环境,例如 staging 或 production,您将失败 :D。
我阅读了Slick 的此文档,您可以从here 阅读它,它非常适合编写成功的配置文件。所以我是这样写的:
com.my.org {
env = "development"
env = ${?MY_ENV}
development {
db {
dataSourceClass = "slick.jdbc.DatabaseUrlDataSource"
properties = {
driver = "slick.driver.PostgresDriver$"
user = "myuser"
password = "*****"
url = "jdbc:postgresql://myIP/dbName"
}
numThreads = 10
}
}
staging {
db {
ip=186.14.*.*
...
}
}
production {
db {
ip=196.82.*.*
...
}
}
}
** 您必须注意的重要一点是,我的PostgreSQL 在我的(docker 容器)之外,所以我必须远程连接到它。
在代码中我们有:
class UserDao @Inject()(
)(implicit val ex: ExecutionContext) {
import driver.api._
val db = Database.forConfig(s"$prefix.db")
val userTableQuery = TableQuery[UserTable]
问题:
问题是现在游戏进化不适用。
问题:
我需要知道如何实现其中之一(以解决我的问题):
- 如何以之前描述的这种方式应用游戏进化(问题部分)?
- 如何以更好的方式设置我的环境?
【问题讨论】:
-
如何在代码中读取 application.conf?
-
好评 .Tnx。我将它添加到问题正文中
标签: scala playframework slick playframework-evolutions