我们正在使用play 2.1.1将新应用程序部署到生产环境中,并且正在使用它来解决一些真正的问题,而且非常有限的文档没有多大帮助......
所以是时候更新到新版本了,我们运行了常用的停止/升级/启动脚本,但是它们失败了。出于某种原因,游戏拒绝应用演变。开始时一直说
糟糕,无法启动服务器。 @ 6elnj89fh:数据库'默认'需要进化!
这是即使我们尝试过设置 applyEvolutions.default=true
通过命令行和application_prod.conf文件。它还抱怨说
警告!此脚本包含可能具有破坏性的DOWNS演变
这对我来说没有多大意义,因为我们在版本上升所以不应该应用下降。但似乎这可能是它拒绝应用演变的原因。
在这一点上,我并不那么担心,因为我认为有一些手动方式来应用进化。经过广泛的搜索,看起来好像......在游戏1中有支持这种情况但在游戏中不支持2.在开发模式下你只需按下浏览器中的一个按钮即可应用演变,但在生产模式下,我找不到任何方式手动应用进化。这是真的还是我错过了?我真的认为这是一个重要的功能! (后来我可以手动应用脚本并禁用evolutions插件,但之后我会丢失evolutions跟踪,这很有用..)
我也想知道你将如何“支持”你的数据库,因为我相信我们会在某些时候做到这一点。如果有一种手动方式来执行此操作,则可能会有一个可选的版本参数来降级数据库。例如。如果你是第5版,需要回到4你运行 play apply-evolutions 4
然后将应用版本5的版本并相应地更新evolutions db。我可以手动应用下降,但问题是进化db将再次处于无效状态...
越来越绝望我尝试了所有我能找到的设置再次启动服务器并添加了 -DapplyDownEvolutions.default=true
选项。我假设这个设置仅在选择降级数据库时会应用下降(虽然似乎没有这样的选项)但实际上做的是应用ups然后立即应用下降(我在故障排除后发现这个服务器现在终于启动了 - 没有任何消息 - 但在访问该站点时给出了一个神秘的错误消息)。是这个设置应该做什么?如果它是我无法理解为什么设置甚至存在。我想不出任何你希望在迁移到更新的数据库版本时应用ups然后立即降低的情况。有人可以对这个设置有所了解吗?
此时,我终于可以通过手动重新运行相应的“UP”来再次运行应用程序。
在这一点上,我们正在努力基本上重新编写自己进行演进处理的脚本,以便更好地控制运行的内容并启用返回..为此能够使用播放功能会更好我希望有人可以对此有所了解。如果没有,也许这种咆哮可以帮助处于类似情况的人......