Grails: Как внести изменения в класс домена подключаемых модулей, если изменение влияет на схему таблицы домена?

У меня есть плагин, используемый разными проектами, и я обнаружил, что мне нужно внести изменения в один класс домена. Как мне убедиться, что схема правильно обновлена ​​в проектах, которые зависят от моего плагина?

Обновлять:

Я изменяю ограничение maxSize одного поля String с 255 до 8000.


person Alexander Suraphel    schedule 05.04.2016    source источник
comment
Установите для своих проектов DataSource dbCreate значение update или используйте миграцию базы данных.   -  person Joshua Moore    schedule 05.04.2016
comment
Если другие проекты уже поместили данные в класс предметной области, вам необходимо написать сценарий миграции. :-( Люди ненавидят миг-скрипты. :-)   -  person dsharew    schedule 05.04.2016
comment
Все зависит от того, что вы меняете в объекте домена. Например, если вы добавляете новый атрибут, отличный от nullalbe, установка для источника данных значения update не поможет. Что вы меняете в объекте домена?   -  person Armaiti    schedule 05.04.2016
comment
Вопрос @Armaiti обновлен!   -  person Alexander Suraphel    schedule 05.04.2016
comment
Обновление может помочь здесь, другой вопрос заключается в том, предоставляется ли изменение таблицы учетным данным источника данных.   -  person Armaiti    schedule 05.04.2016


Ответы (1)


Как мне убедиться, что схема правильно обновлена ​​в проектах, которые зависят от моего плагина?

Вы действительно не можете, по крайней мере, не так, как это обычно применимо. Как правило, плагин не должен предполагать, что приложение генерирует или изменяет схему. Вы должны задокументировать изменение как часть заметок об обновлении вашего плагина.

person Jeff Scott Brown    schedule 05.04.2016
comment
Хорошо, Джефф, немного сложно ожидать, что пользователи плагинов действительно будут создавать и запускать сценарии миграции. - person Alexander Suraphel; 06.04.2016
comment
немного сложно ожидать, что пользователи плагинов действительно будут создавать и запускать сценарии миграции - большинство разработчиков все равно не настроили свои приложения для генерации DDL. Так или иначе база данных должна быть синхронизирована с ожиданиями приложения. У вас действительно нет выбора, кроме как информировать пользователей. Если вы говорите, что ваш плагин могут использовать только люди, использующие плагин миграции, вы ограничиваете свою аудиторию. - person Jeff Scott Brown; 06.04.2016