В Grails можно ли настроить плагин миграции баз данных для запуска раньше других плагинов? - PullRequest
0 голосов
/ 02 апреля 2012

Я использую плагин переноса базы данных в своем приложении, но у меня возникают проблемы при использовании других плагинов, которые имеют зависимости схемы БД.

Я хочу использовать плагин миграций для настройки / реорганизации моей БД при подготовке к использованию только что установленного плагина (например, плагина таксономии).Проблема заключается в том, что плагин миграции загружается после других плагинов, поэтому мое приложение перестает работать, прежде чем я даже могу запустить миграцию (зависимости схемы не применяются).Мне кажется разумным, что миграция БД должна выполняться раньше других плагинов (в 99% случаев).Правильный?

Есть ли способ (без настройки плагина миграции с помощью «def loadBefore») заставить плагин миграции сначала загружаться?

Спасибо

1 Ответ

1 голос
/ 11 апреля 2012

К сожалению, свойства зависит от и loadAfter плагина устанавливаются разработчиком плагина.

Однако вы можете создать новую среду и использовать следующее свойство конфигурации grails.plugin.excludes , чтобы исключить количество плагинов.

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

environments {
  prodMig {
    grails.plugin.excludes = 'interferingPlugin1,interferingPlugin2'
  }
}

это исключит подключаемые модули interfering-plugin1 и interfering-plugin2 из вашей среды prodMig.

Затем вы можете запустить команду переноса базы данных следующим образом:

grails -Dgrails.env=prodMig dbm-update
...