2015-08-22 1 views
0

У меня есть приложение на основе grail-2.4.5. Артефакт, WAR-файл, развертывается для производства; приложение работает отлично. Теперь я хотел бы запустить некоторые команды grails, связанные с плагинами миграции базы данных: конкретно grails dbm-tag и grails dbm-rollback. Я не понимаю, как это сделать. Любые предложения были бы очень желанными; Есть лучший способ сделать это?Как запустить команды grails после развертывания войны с tomcat в производстве?

Версии:

  • Grails 2.4.5
  • Tomcat 8.0.24

Ограничения:

  • Это приложение, 12 Factor стиль, так что никаких конфигов не сохраняются в приложение или источник; они вытаскиваются из окружающей среды. Поэтому нужно запускать из среды.
  • Даже если конфигурации для производства были сохранены в источнике; производственная среда заблокирована и я не могу подключиться к ней извне для запуска. grails production ...
  • В идеале это может быть выполнено через командную строку, так как все эти серверы управляются salt.
  • И наконец, только артефакт, созданный на нашем CI-сервере (WAR-файл), можно рекламировать в таких средах, как стабильная, промежуточная и производственная, чтобы гарантировать, что версии протестированы и запущены в процессе выпуска.

вещей я смотрю на:

  • ли сгенерированный файл WAR изменены, чтобы включить манифест информации, указывающую на приложение Grails командной строки.
  • Увидеть, может ли это быть обработано через диспетчер tomcat.

ответ

0

В принципе, вам нужен способ запускать код Грааля на производственной машине. Возможные варианты: плагин удаленного управления, консольный плагин, ваш пользовательский контроллер с защищенной конечной точкой, которая запускает действие или даже пользовательское задание Quartz, которое вы можете запустить вручную с помощью плагина с помощью кварцевого монитора.

Проблемы со всем этим в том, что вы открываете потенциальную уязвимость в своей производственной среде.

Поскольку вы говорите об операциях с базой данных, вы также можете иметь неупакованное приложение grails, которое подключается к производственной базе данных и запускает эти команды оттуда.

0

Я не вижу встроенного метода подключения к удаленному экземпляру Grails. Взгляните на grails remote control plugin.

Смежные вопросы