Мы находимся в процессе развертывания нового приложения, использующего игру 2.1.1 для производства, и у него есть некоторые реальные проблемы, и очень ограниченная документация не помогла...
Итак, пришло время обновиться до новой версии, мы запустили обычные скрипты stop/upgrade/start, но они не удались. По какой-то причине игра отказывалась применять эволюцию. Когда он начинал, он говорил:
Не удается запустить сервер. @6elnj89fh: для базы данных требуется дефолт!
Это было даже при том, что мы попытались установить applyEvolutions.default=true
как через командную строку, так и в файл application_prod.conf. Он также жаловался, что
ВНИМАНИЕ! Этот script содержит эволюции DOWNS, которые, вероятно, разрушают
который не имеет большого смысла для меня, так как мы поднимаемся в версии, поэтому нисходящие ни в коем случае не должны применяться. Но, похоже, это было причиной того, что он отказывался применять эволюцию.
В этот момент я не был так обеспокоен, как я предположил, что есть какой-то ручной способ применения эволюций. После обширного поиска это выглядит так... Поддержка была в игре 1, но не в игре 2. В режиме dev вы можете просто нажать кнопку в браузере, чтобы применить эволюцию, но в режиме prod я мог найти NO WAY OF OF ВНЕШНЕЕ ПРИМЕНЕНИЕ ЭВОЛЮЦИЙ. Это правда или я пропустил это? Я действительно думаю, что это важная функция! (На заднем плане я мог бы применить скрипты вручную и отключить плагин эволюции, но тогда я бы потерял отслеживание эволюции, что полезно..)
Я также задаюсь вопросом, как вы собираетесь "поддерживать" свою базу данных, поскольку я уверен, что мы достигнем точки, когда нам нужно это сделать в какой-то момент. Если бы был ручной способ сделать это, у него, вероятно, был бы необязательный аргумент версии для понижения базы данных. Например. если вы находитесь в версии 5 и вам нужно вернуться к 4, вы запустите play apply-evolutions 4
, который затем применил бы сокращения от версии 5 и соответствующим образом обновил db эволюции. Я мог бы применить пачки вручную, но опять же проблема в эволюции db снова будет в недопустимом состоянии...
Получив отчаяние, я попробовал все настройки, которые мог найти, чтобы снова запустить сервер и добавил параметр -DapplyDownEvolutions.default=true
. Я предположил, что этот параметр будет применяться к спадам только при выборе возможности понизить базу данных (хотя, похоже, такой опции нет), но на самом деле это было применение всплывающих окон, а затем мгновенное применение спадов (я выяснил это позже при поиске и устранении неисправностей как теперь сервер, наконец, начался - без какого-либо сообщения, но дал сообщение об ошибке при посещении сайта). Это то, что должен делать этот параметр? Если я не понимаю, почему настройка существует. Я не могу придумать ни одного сценария, в котором вы хотели бы применить взлеты, а затем мгновенно сбрасывается при переходе на новую версию базы данных. Может кто-то пролить свет на эту настройку?
В этот момент я могу, наконец, снова запустить приложение, вручную перезапустив соответствующие "UP".
На этом этапе мы работаем над тем, чтобы в основном перезаписывать сценарии для обработки эволюций самостоятельно, чтобы иметь лучший контроль над тем, что запускается и чтобы вернуться. Было бы намного лучше использовать функции воспроизведения для это так, я надеюсь, кто-то может пролить свет на это. Если нет, возможно, эта напыщенность может помочь кому-то в подобной ситуации...