在生产环境中将war部署到tomcat后,如何运行grails命令



我有一个基于grail-2.4.5的应用程序。工件(一个WAR文件)被部署到生产环境中;应用程序运行良好。现在我想运行一些与数据库迁移插件相关的grails命令:特别是grails dbm-taggrails dbm-rollback。我不知道该怎么做。欢迎提出任何建议;有更好的方法吗?

版本:

    Grails 2.4.5
  • Tomcat 8.0.24
约束条件包括:

  • 这是一个12因子风格的应用程序,所以没有配置存储在应用程序或源;它们被从环境中拉出来。所以必须从环境运行。
  • 即使生产配置存储在源中;生产环境被锁定,我无法从外部连接到它来运行grails production ...
  • 理想情况下,这可以通过命令行实现,因为所有这些服务器都是由salt管理的。
  • 最后,只有从CI服务器生成的工件(WAR文件)才允许被提升到上游环境,如稳定、阶段和生产环境,以确保测试和运行的版本在整个发布过程中是一致的。

我正在看的东西:

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

基本上,您需要一种在生产机器上运行grails代码的方法。选项是-远程控制插件,控制台插件,您的自定义控制器与触发动作的安全端点,甚至一个自定义的石英作业,你可以用石英监视器插件手动启动。

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

既然你谈论的是数据库上的操作,你也可以有一个未打包的grails应用程序连接到生产数据库,并从那里运行这些命令。

我没有看到任何用于连接远程Grails实例的内置方法。看一下grails远程控制插件

最新更新