Подтвердить что ты не робот

Как изменить класс домена в Grails?

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

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

Я только что получил книгу "Окончательное руководство по Grails", и она молчала по этому вопросу, и я не могу найти что-либо на веб-сайте Grails.

4b9b3361

Ответ 1

Это слабая точка грааля, и я не знаю, как это сделать. То, что я делаю, это создать копию модифицированного класса домена, а затем сравнить схему SQL таблицы модифицированного класса домена с тем, что сгенерировано копией класса домена. Затем вам нужно вручную внести необходимые изменения в исходную таблицу. Я обнаружил, что такие вещи, как отношения, как правило, меняются, когда класс домена, но такие вещи, как добавление ограничения, чтобы заставить поле быть текстовым типом, не всегда меняются........

Ответ 3

возможно, вам стоит подумать о создании модуля резервного копирования/восстановления для вашего приложения, которое не зависит от базы данных (может быть сериализовано в xml или json) - таким образом, при изменении db вы также изменяете резервное копирование/восстановление в таким образом, чтобы данные старого домена "обновлялись" до данных домена ne.

Мне нравится, как django может сделать это автоматически, но theres больше магии в django, что я не понимаю...

Ответ 4

вы также можете попробовать команду "grails schema-export", которая даст вам выходной sql, который имеет все команды create для таблиц и ограничений.

С помощью этой ссылки вы можете создавать свои скрипты. Это лучший доступный в настоящее время, я думаю.

Сообщите нам, если вы найдете лучший способ.