Миграция базы данных в Grails - PullRequest
2 голосов
/ 06 декабря 2010

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

Таблица пользовательских таблиц имеет отношение один ко многим к таблицам Activity и Friend, поэтому в таблице User у меня есть:

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

, а в "Друге и деятельности" у меня есть:

static belongsTo User.

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

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

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

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

1 Ответ

2 голосов
/ 06 декабря 2010

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

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

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

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