Предположим, у меня есть база данных, содержащая 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, которое в противном случае воссоздает таблицу существует. Очевидно, что после развертывания приложения у меня не будет возможности удалить таблицу.