【问题标题】:How to run grails commands after deploying war to tomcat in production?如何在生产中将战争部署到tomcat后运行grails命令?
【发布时间】:2015-08-22 07:05:43
【问题描述】:

我有一个基于 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管理器以某种方式处理。

【问题讨论】:

    标签: tomcat grails grails-2.0 tomcat8


    【解决方案1】:

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

    所有这些问题都在于您在生产环境中打开了一个潜在的漏洞。

    既然您在谈论对数据库的操作,那么您不妨拥有一个未打包的 grails 应用程序,它连接到生产数据库并从那里运行这些命令。

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-03-13
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多