如何根据不同的sbt命令设置设置键的值?

如何根据不同的sbt命令设置设置键的值?,sbt,flyway,Sbt,Flyway,这里有命令sbt flywayMigrate from flywaydb.org。该命令要求用户预先设置flywayUrl、flywayUser和flywayPassword。到目前为止还不错 现在我想能够在两种不同的环境下使用sbt flywayMigrate;它们的变量应该不同 我尝试了两个新命令:sbt flywayMigrateDev和sbt flywaymigratedprod。我不知道如何将新命令连接到flywayMigrate 我尝试创建一个新的范围。但是我不知道如何正确地连接变量

这里有命令sbt flywayMigrate from flywaydb.org。该命令要求用户预先设置flywayUrl、flywayUser和flywayPassword。到目前为止还不错

现在我想能够在两种不同的环境下使用sbt flywayMigrate;它们的变量应该不同

我尝试了两个新命令:sbt flywayMigrateDev和sbt flywaymigratedprod。我不知道如何将新命令连接到flywayMigrate

我尝试创建一个新的范围。但是我不知道如何正确地连接变量和任务

我想知道是否有人能给我一个如何做到这一点的例子。我想看一个代码示例

我们可以将问题简化为:

sbt flywayMigrate命令依赖于flywayUrl。我们如何允许命令通过调用sbt命令或任何其他方式使用不同的FlywayURL

谢谢大家!

您应该为此使用config

示例.sbt文件内容:

//设置您的配置。 lazy val prodConfig=configprod lazy val devConfig=configdev //设置dev和prod之间常见的任何配置。 val commonFlyway=序号 //例如,有两个共享设置。 flywayUser:=pg_admin, flywayLocations:=Seqfilesystem:迁移 //设置prod和dev。 inConfigprodConfigflywayBaseSettingsprodConfig++commonFlyway flywayUrl.inprodConfig:=jdbc:etc:proddb.somecompany.com //或者您希望加载生产密码的方式。 flywayPassword.inprodConfig:=sys.env.getOrElsePROD_PASSWD,未设置 inConfigdevConfigflywayBaseSettingsprodConfig++commonFlyway flywayUrl.indevConfig:=jdbc:etc:devdb.somecompany.com flywayPassword.indevConfig:=开发\u passwd 现在,您可以分别运行prod:flywayMigrate和dev:flywayMigrate来迁移生产和开发


有关其他示例,请参见。

我刚刚问了另一个类似的问题:感谢您在此提出了更好的解决方案。您是如何学会如何做到这一点的?我正在浏览SBT文档,但无法理解它。我很想了解您是如何学习它的。旧的示例代码正是我在自己的sbt配置中使用的代码。我已经更新了示例代码以匹配最新版本的Flyway插件,并添加了相关文档的链接。您使用的是哪个版本的插件?