Лучшие практики: SQL-скриптинг или доверие к GORM - PullRequest
4 голосов
/ 26 января 2010

Я всегда записывал все изменения в БД. Но мне интересно, действительно ли мне нужно это делать с приложениями Grails, поскольку GORM внесет изменения автоматически.

Итак, каков наилучший метод управления изменениями базы данных в приложении Grails?

Ответы [ 2 ]

8 голосов
/ 26 января 2010

Это шаблон, который я использовал в нескольких крупных проектах Grails (и некоторых меньших):

  1. В GORM мы доверяем ™ первым этапы развития (подготовительный / без данных)
  2. Непосредственно перед выпуском в производственная среда начинает использовать инструмент, подобный Autobase , Liquibase , Задачи миграции базы данных (по аналогии с граблями RoR) или другая утилита управления версиями схемы.
  3. Сохранить все изменения базы данных через инструмент в автоматическом мода.
  4. Протестируйте свои миграции, написав тесты, в которых проверены все случаи и целостность данных до того уровня, на котором вам удобно работать с производственными данными.

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

Когда вы начнете управлять несколькими средами (локальная разработка, QA / UAT, Staging, Production), вы будете рады, что потратили время на управление изменениями вашей БД.

Liquibase и Autobase оба предоставляют вам хорошие инструменты для написания многих распространенных рефакторингов, но вы всегда можете перейти к необработанному SQL, если захотите / захотите.

2 голосов
/ 26 января 2010

GORM не будет обрабатывать все изменения схемы автоматически; например, если вы удалите поле из одного из объектов вашего домена, GORM не удалит соответствующий столбец базы данных.

Существует несколько плагинов Grails для управления миграцией базы данных - см. Autobase и Liquibase . Я бы сказал, что использование того, что больше соответствует вашим потребностям, является наилучшей практикой; Вот хороший пост в блоге , который объясняет несколько ошибок с обоими плагинами.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...