Лучшая стратегия для первоначального заполнения базы данных Grails - PullRequest
4 голосов
/ 23 февраля 2010

Я хотел бы знать ваш подход / опыт, когда пришло время изначально заполнить базу данных Grails, в которой будут храниться данные вашего приложения. Предполагая, что у вас есть CSV с данными, безопаснее создать скрипт (с любым инструментом, который вам подходит), который:

1.-Генерирует команды Bootstrap с классами домена, запускает их в тестовой или dev-среде и затем использует собственные команды db для экспорта в prod?

2. -Создать сценарий вставки в БД, предполагая, что версия GORM = 0, и вручную увеличивать автоматически создаваемые идентификаторы?

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

Заранее спасибо.

Ответы [ 2 ]

6 голосов
/ 23 февраля 2010

Взгляните на эту ссылку. Это позволяет вам запускать скрипты Groovy в обычном контексте Grails, предоставляя вам доступ ко всем функциям Grails, включая GORM. В настоящее время я импортирую данные из устаревшей базы данных и обнаружил, что написание скрипта Groovy с использованием интерфейса Groovy SQL для извлечения данных с последующим помещением этих данных в объекты домена представляется наиболее простым делом. Получив данные, вы просто используете команды, специфичные для вашей системы баз данных, чтобы переместить эти данные в рабочую базу данных.

Обновление:

Видимо, обновленная запись, на которую ссылается запись блога, на которую я ссылаюсь, больше не существует. Я смог заставить это работать, используя код по следующей ссылке, которая также упоминается в комментариях. http://pastie.org/180868

0 голосов
/ 26 февраля 2010

Наконец, кажется, что самое простое решение - учесть, что GORM на текущий выпуск (1.2) использует одну последовательность для всех автоматически генерируемых идентификаторов. Поэтому, учитывая это, при создании любых необходимых вам скриптов (на языке по вашему выбору) должно хватить. Я понимаю, что в версии 1.3 планируется, что каждая таблица имеет свою последовательность.

...