Да, вы можете, но, исходя из моего опыта, с некоторыми условиями / ограничениями, о которых вам следует знать.
Знайте это:
Grails 2 не может войти в систему с помощью Spring Security при использовании нескольких баз данных
В документации http://grails.org/doc/2.0.0.RC1/guide/conf.html#multipleDatasources говорится, что вы можете переключаться между источниками данных либо через сопоставление доменов, либо с помощью служб и статического свойства "источник данных".
Я обнаружил, что сопоставление доменов работает, но одни службы не работают, и из того, как я интерпретировал документацию, мы можем сделать тоже самое.
2.1 Определение источников данных в Datasources.groovy:
Вы можете указать, какой источник данных вы хотите использовать в своих моделях доменов, и это прекрасно работает. Также объявите свой домен для использования нескольких источников данных, а затем укажите, какой источник данных использовать в ваших контроллерах:
bookInstance.db1.save ()
или же
bookInstance.db2.save ()
ИЛИ, когда источник данных неизвестен перед рукой, вы можете сделать это:
def ds = "db1" // или установите все, что хотите, db1, db2, db3 ...
bookstance. "$ DS" .save ()
НО, если вы хотите использовать сервисы для объявления источника данных, это НЕ работает для меня.
static datasource = "db1"
Несмотря ни на что, это не сработало для меня в Grails Services.
2.2 Объявите источник данных в базе данных по умолчанию, а затем внедрите другие источники данных во время выполнения.
В документации сказано, что вы можете внедрить во время выполнения новый компонент источника данных. И вы можете, но это не подхвачено Граалем. Я не смог заставить Grails быть в курсе недавно введенных компонентов источника данных. Таким образом, источники данных ДОЛЖНЫ быть предварительно объявлены в Datasource.grooy
-