Как отключить эволюции для одной базы данных

У меня есть проект play-java с двумя базами данных, подключенными через ebean. Первая база данных управляется с помощью эволюции, вторая база данных используется только для чтения, и у меня нет прав на ее обновление. Поэтому я должен отключить эволюции только для одной, второй базы данных.

В настоящее время я потратил некоторое время и не нашел решений, а только вводящие в заблуждение предложения от stackoveflow и путаницу из списка проблем с playframework на сайте github. Насколько я понял, эта функциональность будет доступна в новой, еще не вышедшей версии 2.4 playframework.

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

Я видел несколько связанных вопросов, но они довольно старые. Надеюсь, с того времени что-то изменилось.

С уважением, Ремис Б. Полезно Бесполезно


person Remis B    schedule 14.01.2015    source источник
comment
Вы видели это - github.com/sclasen/play-extras В частности - github. com/sclasen/play-extras/blob/master/src/main/scala/com/, который позволяет отключать определенные базы данных.   -  person nbz    schedule 14.01.2015


Ответы (1)


В Play Extras можно применять расширенный подключаемый модуль эволюции, и он работает с приложениями Play 2.0.

Плагин Enhanced Evolutions, который блокирует ваши динамики, чтобы они не наступали друг на друга (скоро будет в игре), и включает/отключает эволюцию на дБ.

Вы можете добавить плагин, добавив следующее в файл сборки

val extras = RootProject(uri("git://github.com/sclasen/play-extras.git"))

val main = PlayProject(appName, appVersion, appDependencies, mainLang = SCALA, settings = Defaults.defaultSettings ++ buildSettings).dependsOn(extras)

Вам нужно будет отключить плагин эволюции по умолчанию в Play.

evolutionplugin=disabled

Дополнительную информацию о том, как использовать плагин эволюции, можно найти здесь.

person nbz    schedule 14.01.2015
comment
О, я вижу, что Play Extra использует Scala Anorm для доступа к базе данных, но это не сработает для моего проекта, потому что он использует Ebean для доступа к данным и основан на play java. Спасибо @nbz за этот ответ, я собираюсь обновить свой вопрос, указав зависимость от ebean и play-java. - person Remis B; 15.01.2015