Предположим, что у меня есть база данных, содержащая 3 таблицы в приложении Grails: пользователя Активность Другбазы данных миграции в Grails
стол пользователя таблица имеет один ко многим отношению к деятельности и таблиц Другу поэтому в таблице пользователей у меня есть:
static hasMany = [activies: Activity, friends: Friend]
и друзей и активность у меня есть:
static belongsTo User.
Применение и позволяет говорить, что тысячи клиентов зарегистрировались. Теперь изменения внесены в базу данных: Таблица Действия отбрасываются. Создается журнал журналов, который находится на многих сторонах таблицы пользователя. В таблице пользователя добавлен новый столбец, и этот столбец не может быть нулевым. Старый столбец в таблице Друг удален, который также был определен как null.
Итак, приведенный выше сценарий и предположим, что MySQL необходимо сделать, чтобы сделать вышеизложенные изменения без удаления существующих данных клиентов и безопасно добавить новую таблицу существующим клиентам?
Ruby on Rails поставляется с ActiveRecord для миграции баз данных. Есть ли у Grails что-то подобное из коробки?
В настоящее время в разработке, когда я запускаю приложение grails после добавления в таблицу нового столбца, отличного от нуля, я получаю столбец не может быть исключен null исключение, если я не удалю эту таблицу в базе данных до запуска приложения grails, которое бы воссоздало таблицу if не существует. Очевидно, что после развертывания приложения у меня не будет роскоши удалить таблицу.
Поддержка миграции Grails будет плагином и выпущена до 1.4. Он основан на Liquibase, поэтому, если вы начнете использовать его, теперь переключение на использование плагина Grails будет простым. – 2010-12-06 18:59:20