2

描述:

你好。我正在为我的应用程序使用Play frameworkand 。所以我设计了 CI_Pipelines并在我的.When我们设置了这样的光滑配置:SlickPostgreSQLapplication.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您可以从此处阅读的文档,非常适合编写成功的配置文件。所以我这样写:

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]

问题:

问题是现在玩进化不适用。

问题:

我需要知道如何实现其中之一(以解决我的问题):

  1. 如何以之前描述的这种方式应用游戏进化(在问题部分)?
  2. 如何以更好的方式设置我的环境?
4

1 回答 1

0

我的一个朋友 [通过电话] 向我咨询了这个问题,这是我们提出的解决方案:

slick.dbs.default.driver = "slick.driver.PostgresDriver$"
slick.dbs.default.db {
  driver = org.postgresql.Driver
  ip = localhost
  dbName = ***
  user = ***
  password = "***"
  url="jdbc:postgresql://postgresql/"${slick.dbs.default.db.dbName}
}

您还可以使用 Docker 创建 docker 网络并设置PostgreSQL容器名称而不是 IP 地址。

此外,如果您希望能够配置IP地址,例如来自jenkinsPlay_Runtime_Guice,您可以使用这个:

url="jdbc:postgresql://"${?POSTGRESQL_IP}"/dbName"
于 2018-09-09T11:27:15.033 回答