在生产中将war部署到tomcat之后如何运行grails命令?

时间:2015-08-22 07:05:44

标签: tomcat grails grails-2.0 tomcat8

我有一个基于grail-2.4.5的应用程序。工件(WAR文件)部署到生产中;应用程序运行良好。现在我想运行一些与数据库迁移插件相关的grails命令:具体为grails dbm-taggrails dbm-rollback。我对如何做到这一点感到茫然。任何建议都会非常受欢迎;有更好的方法吗?

版本:

  • Grails 2.4.5
  • Tomcat 8.0.24

约束:

  • 这是一个12 Factor样式的应用程序,因此应用程序或源代码中不存储任何配置;他们被从环境中拉出来。所以必须从环境中运行。
  • 即使生产的配置存储在源中;生产环境被锁定,我无法从外部连接到它以运行grails production ...
  • 理想情况下,这可以通过命令行执行,因为所有这些服务器都由salt管理。
  • 最后,只允许从我们的CI服务器(WAR文件)生成的工件升级到稳定,登台和生产等上游环境,以确保测试和运行的版本在发布过程中保持一致。

我正在看的事情:

  • 修改生成的WAR文件,以包含指向grails命令行应用程序的清单信息。
  • 看看这是否可以通过tomcat管理器以某种方式处理。

2 个答案:

答案 0 :(得分:0)

我没有看到任何用于连接远程Grails实例的内置方法。看看grails remote control plugin

答案 1 :(得分:0)

基本上,您需要一种在生产计算机上运行grails代码的方法。选项包括 - 远程控制插件,控制台插件,具有触发操作的安全端点的自定义控制器,甚至是可以使用Quartz监视器插件手动启动的自定义Quartz作业。

所有这些问题都是您在生产环境中打开潜在漏洞。

由于您正在讨论数据库操作,您可能还有一个未打包的grails应用程序连接到生产数据库并从那里运行这些命令。