首页 文章

Play Framework - 如何维护不同环境的配置文件?

提问于
浏览
5

对于我的Play 2.2 / Scala应用程序(使用SBT构建),我想根据不同部署目标的环境配置不同的配置文件(conf / application.conf)?希望可以从基础版本生成变体?

我以前从.NET习惯的是拥有一个基本配置文件(Web.config),它根据正在部署的配置文件(例如Production)进行某种转换 . 是否在Play / Scala世界中使用类似的技术?

1 回答

  • 16

    Alternative configuration files在Play的文档中非常清楚 Specifying alternative configuration file .

    简而言之 - 在 application.conf 中,您可以放置应用程序的默认配置,此外,您还需要为您的环境创建其他文件,即 . life.confdev.conf 等 . 在这些文件中,您首先需要包含 application.conf (将读取整个默认配置),接下来只需覆盖必须更改的 only 部分 - 即 . 数据库凭据,可能是 dev.conf

    include "application.conf"
    
    db.default.driver=org.h2.Driver
    db.default.url="jdbc:h2:mem:alternative-database-for-dev-testing"
    db.default.user=developer
    db.default.password="developerpass"
    

    所以最后你开始申请(在 dist 之后)

    ./start -Dconfig.resource=dev.conf
    

    或者使用Play控制台

    play -Dconfig.resource=dev.conf run
    

    几个提示:

    • 最好将你的'life'数据库凭据放在默认的 application.conf 文件中,如果某个开发人员忘记包含他的 dev.conf 他不会损坏 生产环境 数据库,而应该把它放在 prod.conf 中 .

    • 此外,这些额外的配置不应该知道生命数据库凭据不会看到它 .

    • 也可以使用远程备用配置文件,这可能很有用,即 . 当您部署同一个应用程序的多个实例时,即 . 在 Cloud 中的几个主机上 .

    • 每个开发人员都有自己的配置文件,即 dev_aknuds1.confdev_biesior.conf 等,因此您可以在repo中使用一种模式 dev_*.conf 忽略它们 .

    • 最后你可以创建一个shell脚本(unix)或bat文件(Windows)来开始使用选择的配置文件,如 start_dev.shrun_dev.sh 等,这样你就不需要每次都写 -Dconfig.resource=...

相关问题