Выборочное отключение автоматических обновлений таблиц (dbCreate = "none") на уровне домена / уровне таблицы в Grails? - PullRequest
2 голосов
/ 24 апреля 2011

В Grails можно ли отключить автоматическое создание / обновление таблиц только для одного класса домена?

Допустим, у меня есть классы доменов Foo, Bar и Zonk.Я хочу автоматическое обновление таблицы для Foo и Bar, в то время как я не хочу вообще вносить автоматические изменения в таблицу Zonk.

Это возможно?

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

1 Ответ

5 голосов
/ 24 апреля 2011

Нет прямой поддержки, но вы можете взломать исправление. Но вам даже не нужны автоматические обновления для «безопасных» таблиц. Несколько примеров - если вы переименуете столбец или таблицу, он добавит новый, но не удалит старый. Если вы добавите новый столбец, который не должен принимать значения NULL, он будет добавлен как обнуляемый, так как в противном случае старые строки будут недействительными. И если вы расширите столбец, он не будет обновлен, даже если не будет потери данных.

Вам было бы намного лучше использовать миграцию базы данных, и Liquibase - лучший вариант в настоящее время. Плагин Database Migration является официальным плагином миграции для Grails и использует Liqibase.

...