6

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

例如:

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

使用此命令,服务器将不会启动。port 和 applyEvolutions=true 标志都被完全忽略,它会抛出这个错误:

[警告] 播放 - 您的生产数据库 [默认] 需要进化![警告] 播放 - 如果你想自动运行它们,请使用 -DapplyEvolutions.default=true 运行(小心)糟糕,无法启动服务器。@6elhl9mca:数据库“默认”需要进化!

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

4

2 回答 2

10

任何一个

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

或者

play dist

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

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

将工作。

于 2013-06-24T23:16:57.803 回答
6

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

投入DOESapplyEvolutions.default=true工作,并将自动应用数据库演变。命令行参数不起作用,并且由于未知原因而被忽略。application.conf -DapplyEvolutions.default=true

投入不起作用http.port=80_ 命令行参数也不适用于设置要运行的端口号。application.conf -Dhttp.port=80

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

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

由于某种原因,当端口命令完全按照上面的双引号写入时,要正确设置运行的端口号。

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

希望这可以帮助某人。

于 2013-06-24T23:06:22.893 回答