Play Framework 2.1.1部署问题
所以,我正在尝试部署我非常简单的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之外,一切正常运行。
或
play "start -Dhttp.port=80 -DapplyEvolutions.default=true"
要么
play dist
然后,解压缩并运行生成的启动脚本,
./start -Dhttp.port=80 -DapplyEvolutions.default=true
将工作。
好的,所以我没有真正找到解决方案,但我找到了解决方法。 这不是Play Framework 2.x文档中的任何地方(还是),所以我想我会把它放在这里以防其他人被卡住:
将applyEvolutions.default=true
放入application.conf
正常工作,并自动应用数据库演变。 命令行参数-DapplyEvolutions.default=true
不起作用,因未知原因而被忽略。
将http.port=80
放入application.conf
不起作用。 命令行参数-Dhttp.port=80
也不能用于设置要运行的端口号。
因此,要设置端口号,请使用此命令:
play "start 80"
或play "run 80"
(完全如图所示使用双引号)。
出于某种原因,当端口命令与上面的双引号完全相同时,正确设置要运行的端口号。
这在任何地方的框架文档中都找不到。 我创建了另一个拉取请求来添加它,但我为此框架解决的最后一个问题(数据库加密)被拒绝为仅限于“有限的利基用例”,因此文档更新被拒绝。 反正我还是可以试试。
希望这有助于某人。