2010-12-06 3 views
2

Предположим, что у меня есть база данных, содержащая 3 таблицы в приложении Grails: пользователя Активность Другбазы данных миграции в Grails

стол пользователя таблица имеет один ко многим отношению к деятельности и таблиц Другу поэтому в таблице пользователей у меня есть:

static hasMany = [activies: Activity, friends: Friend] 

и друзей и активность у меня есть:

static belongsTo User. 

Применение и позволяет говорить, что тысячи клиентов зарегистрировались. Теперь изменения внесены в базу данных: Таблица Действия отбрасываются. Создается журнал журналов, который находится на многих сторонах таблицы пользователя. В таблице пользователя добавлен новый столбец, и этот столбец не может быть нулевым. Старый столбец в таблице Друг удален, который также был определен как null.

Итак, приведенный выше сценарий и предположим, что MySQL необходимо сделать, чтобы сделать вышеизложенные изменения без удаления существующих данных клиентов и безопасно добавить новую таблицу существующим клиентам?

Ruby on Rails поставляется с ActiveRecord для миграции баз данных. Есть ли у Grails что-то подобное из коробки?

В настоящее время в разработке, когда я запускаю приложение grails после добавления в таблицу нового столбца, отличного от нуля, я получаю столбец не может быть исключен null исключение, если я не удалю эту таблицу в базе данных до запуска приложения grails, которое бы воссоздало таблицу if не существует. Очевидно, что после развертывания приложения у меня не будет роскоши удалить таблицу.

ответ

2

К сожалению, текущая версия Grails не связана с миграцией базы данных. Однако существует plugin for Liquibase, что делает возможным миграцию.

next version of Grails (1.4, запланированный на 1 квартал 2011 года), предположительно, будет содержать встроенный инструмент миграции, который я очень с нетерпением жду.

Примечание: я не использовал плагин Liquibase, поэтому у меня нет опыта на собственном опыте. Тем не менее, я видел множество сообщений в блогах, описывающих его использование, и я, вероятно, собираюсь использовать его в своем следующем проекте Grails, если к тому времени 1,4 не выйдет.

+2

Поддержка миграции Grails будет плагином и выпущена до 1.4. Он основан на Liquibase, поэтому, если вы начнете использовать его, теперь переключение на использование плагина Grails будет простым. – 2010-12-06 18:59:20

Смежные вопросы