Управление эволюцией в производственной среде

Мы находимся в процессе развертывания нового приложения, использующего Play 2.1.1, для производства, и у нас есть некоторые реальные проблемы с ним, и очень ограниченная документация нене очень помогает ...

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

К сожалению, не удается запустить сервер. @ 6elnj89fh: База данных 'дефолт' нужна эволюция!

Это было, хотя мы пытались установитьapplyEvolutions.default=true как через командную строку, так и в файле application_prod.conf. Он также жаловался, что

ПРЕДУПРЕЖДЕНИЕ! Этот сценарий содержит эволюции ВНИЗ, которые могут быть разрушительными

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

На данный момент я не былЯ так волновался, что я предположил, что есть какой-то ручной способ применить эволюцию. После продолжительного поиска это выглядит так, как будто ... В play 1 была поддержка этого, но не в play 2. В режиме dev вы можете просто нажать кнопку в браузере, чтобы применить эволюцию, но в режиме prod я могу найти NO WAY OF РУЧНО ПРИМЕНЯТЬ ЭВОЛЮЦИИ. Это правда или я пропустил это? Я действительно думаю, что это важная особенность! (Задним взглядом я мог бы применить сценарии вручную и отключить плагин evolutions, но тогда я бы потерял отслеживание эволюций, что полезно ...)

Мне также интересно, как вы будете "поддержка» Ваша база данных, так как я уверен, что мы дойдем до того момента, когда нам нужно будет сделать это в какой-то момент. Если бы был ручной способ сделать это, он мог бы иметь необязательный аргумент версии для понижения базы данных. Например. если у вас версия 5 и вам нужно вернуться к 4, вы запускаетеplay apply-evolutions 4 который затем применил бы падения из версии 5 и обновил бы db evolutions соответственно. Я мог бы применить падения вручную, но опять же проблема в том, что db evolutions снова будет в недопустимом состоянии ...

В отчаянии я перепробовал все настройки, которые смог найти, чтобы снова запустить сервер, и добавил-DapplyDownEvolutions.default=true вариант. Я предполагал, что этот параметр будет применять спады только при выборе понижения версии БД (хотя, похоже, такой опции нет), но на самом деле он применил взлеты, а затем мгновенно применил взлеты (я узнал об этом позже при устранении неполадок, так как сервер теперь наконец запустился - без какого-либо сообщения - но дал загадочное сообщение об ошибке при посещении сайта). Это то, что этот параметр должен делать? Если это я могуЯ не понимаю, почему настройка существует. Я могу'Не думайте о любом сценарии, в котором вы хотели бы применить взлеты, а затем мгновенные спады при переходе на более новую версию базы данных. Может кто-нибудь пролить свет на эту настройку?

К этому моменту я наконец смог запустить приложение еще раз, вручную перезапустив соответствующий "UPS".

На данный момент мы работаем над переписыванием сценариев для самостоятельной обработки эволюций, чтобы иметь лучший контроль над тем, что запускается, и позволить возвращаться назад. Было бы гораздо лучше иметь возможность использовать для этого функциональность воспроизведения, поэтому я Я надеюсь, что кто-то может пролить свет на это. Если нет, возможно, эта напыщенная речь может помочь кому-то в подобной ситуации ...

Ответы на вопрос(1)

Ваш ответ на вопрос