在生产中将 war 部署到 tomcat 后如何 运行 grails 命令?
How to run grails commands after deploying war to tomcat in production?
我有一个基于 grail-2.4.5 的应用程序。工件是一个 WAR 文件,已部署到生产环境;该应用程序 运行 很棒。现在我想 运行 一些与数据库迁移插件相关的 grails 命令:特别是 grails dbm-tag
和 grails dbm-rollback
。我不知道该怎么做。任何建议都将非常受欢迎;有更好的方法吗?
版本:
- Grails 2.4.5
- Tomcat 8.0.24
限制条件:
- 这是一个 12 Factor 风格的应用程序,因此没有配置存储在应用程序或源代码中;它们是从环境中提取出来的。所以一定是运行来自环境。
- 即使生产配置存储在源中;生产环境被锁定,我无法从外部连接到 运行
grails production ...
- 理想情况下,这可以通过命令行完成,因为所有这些服务器都由
salt
管理。
- 最后,只允许从我们的 CI 服务器(WAR 文件)生成的工件提升到上游环境,如稳定、暂存和生产,以确保版本经过测试和 运行 在整个发布过程中保持一致。
我正在看的东西:
- 修改生成的 WAR 文件以包含指向 grails 命令行应用程序的清单信息。
- 看看这是否可以通过 tomcat 管理器以某种方式处理。
我没有看到任何用于连接到远程 Grails 实例的内置方法。看看 grails remote control plugin.
基本上,您需要一种在生产机器上 运行 grails 代码的方法。选项是 - 远程控制插件、控制台插件、带有触发操作的安全端点的自定义控制器,甚至是可以使用 Quartz 监视器插件手动启动的自定义 Quartz 作业。
所有这些的问题是您在生产环境中打开了一个潜在的漏洞。
由于您讨论的是对数据库的操作,因此您最好有一个连接到生产数据库的未打包的 grails 应用程序,并从那里 运行 这些命令。
我有一个基于 grail-2.4.5 的应用程序。工件是一个 WAR 文件,已部署到生产环境;该应用程序 运行 很棒。现在我想 运行 一些与数据库迁移插件相关的 grails 命令:特别是 grails dbm-tag
和 grails dbm-rollback
。我不知道该怎么做。任何建议都将非常受欢迎;有更好的方法吗?
版本:
- Grails 2.4.5
- Tomcat 8.0.24
限制条件:
- 这是一个 12 Factor 风格的应用程序,因此没有配置存储在应用程序或源代码中;它们是从环境中提取出来的。所以一定是运行来自环境。
- 即使生产配置存储在源中;生产环境被锁定,我无法从外部连接到 运行
grails production ...
- 理想情况下,这可以通过命令行完成,因为所有这些服务器都由
salt
管理。 - 最后,只允许从我们的 CI 服务器(WAR 文件)生成的工件提升到上游环境,如稳定、暂存和生产,以确保版本经过测试和 运行 在整个发布过程中保持一致。
我正在看的东西:
- 修改生成的 WAR 文件以包含指向 grails 命令行应用程序的清单信息。
- 看看这是否可以通过 tomcat 管理器以某种方式处理。
我没有看到任何用于连接到远程 Grails 实例的内置方法。看看 grails remote control plugin.
基本上,您需要一种在生产机器上 运行 grails 代码的方法。选项是 - 远程控制插件、控制台插件、带有触发操作的安全端点的自定义控制器,甚至是可以使用 Quartz 监视器插件手动启动的自定义 Quartz 作业。
所有这些的问题是您在生产环境中打开了一个潜在的漏洞。
由于您讨论的是对数据库的操作,因此您最好有一个连接到生产数据库的未打包的 grails 应用程序,并从那里 运行 这些命令。