Play Framework 2.1.1部署问题

时间:2013-06-24 20:48:10

标签: java playframework-2.0 playframework-2.1 playframework-evolutions

所以,我正在尝试部署我非常简单的Play Framework 2.1.1应用程序,但每当我通过端口命令行传递标记并应用数据库演变时,它们都会被忽略。

例如:

  

sudo play start -Dhttp.port = 80 -DapplyEvolutions.default = true

使用此命令,服务器将无法启动。 port和applyEvolutions = true标志都被完全忽略,并抛出此错误:

  

[warn] play - 您的生产数据库[默认]需要进化!   [warn] play - 如果你愿意,可以使用-DapplyEvolutions.default = true运行   自动运行它们(小心)   哎呀,无法启动服务器。 @ 6elhl9mca:数据库'默认'需要进化!

我已经尝试了我能想到的一切无济于事。在我的本地机器上使用Play Run工作正常,没有问题。服务器正在运行Ubuntu 12.04。所有正确的驱动程序和连接字符串都存在并经过测试,数据库正在运行,除了Play Framework之外,一切正常运行。

2 个答案:

答案 0 :(得分:10)

无论

play "start -Dhttp.port=80 -DapplyEvolutions.default=true"

play dist

然后,解压缩并运行生成的启动脚本,

./start -Dhttp.port=80 -DapplyEvolutions.default=true

会奏效。

答案 1 :(得分:6)

好的,所以我没有真正找到解决方案,但我找到了解决方法。这不是Play Framework 2.x文档中的任何地方(还是),所以我想我会把它放在这里以防其他人被卡住:

applyEvolutions.default=true置于application.conf DOES 工作,并自动应用数据库演变。命令行参数-DapplyEvolutions.default=true 不会工作,因未知原因而被忽略。

http.port=80置于application.conf 不会工作。命令行参数-Dhttp.port=80不会用于设置要运行的端口号。

因此,要设置端口号,请改用此命令:

play "start 80"play "run 80"(完全按照所示使用双引号)。

出于某种原因,当双引号中的port命令与上面完全相同时,正确设置要运行的端口号。

这在任何地方的框架文档中都找不到。我创建了另一个拉取请求来添加它,但我为此框架解决的最后一个问题(数据库加密)被拒绝为仅限于“有限的利基用例”,因此文档更新被拒绝。无论如何,我仍然可以尝试。

希望这有助于某人。