2010-04-24 2 views
2

Каков наилучший способ загрузки семенных (исходных или тестовых) данных в приложение grails. Я рассматриваю 3 вариантаДанные о семенах для применения в гралисах

  1. Ввод всех в * BootStrap.groovy файлов. Это утомительно, если классов домена и тестовых данных много.
  2. Напишите пользовательские функции для загрузки через xml. Может быть, не слишком сложно с превосходной поддержкой xml groovy, но много операторов switch для разных классов домена.
  3. Использование Liquibase LoadData api. Я вижу, что вы легко загружаете данные из файлов csv.

Выбор 3 кажется самым простым. Но я не знаком с Liquibase. Является ли это хорошо в этом случае, или только для миграции БД изменений и т.д. Если кто-то может обеспечить лучший золь или точку на пример с LiquiBase, было бы большим подспорьем ..

ответ

2

Другой ответ будет использовать Grails выполнения сценария. Это позволит вам перемещать то, что вы можете добавить в загрузочный файл, и хранить его там, где вы хотите, в своей файловой системе (возможно, за пределами кодовой базы). Аналогично, вы можете установить плагин консоли и загрузить код через это в запущенном приложении.

В зависимости от ваших потребностей, ознакомьтесь с плагином build-test-data.

+0

Grails RunScript: Однако что, если мы хотим сделать это в среде QA или UAT, этот метод требует, чтобы у нас был «контекст grails» на сервере, нет? grails run-script требует грааля, а также проект (исходный код), установленный на сервере, не так ли? будет ли работать над скриптами Grails за пределами контекста разработки Grails? – arrehman

+0

В этом случае вы можете посмотреть в консоли или пулы удаленного управления. С помощью плагина консоли вы можете запускать скрипты или произвольный код groovy на работающем экземпляре с полным доступом. Имейте в виду, что это должно быть отключено или сильно защищено при развертывании производства. – ahanson

2

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

http://www.grails.org/plugin/fixtures

+0

спасибо за указатель .. Я тем временем решил сделать это сам из xml .. Я не много разбирался, но не видел много примеров использования светильников. Легко ли использовать его с одним-многим, много-много и т.д. сценариев? – bsr

0

Один из способов я генерироваться данные семян с помощью службы. Я создал класс, назовем его SeederService. Я могу ввести эту службу в Bootstrap.groovy и вызвать любой метод, который я бы хотел.

Красота SeederService заключается в том, что вы также можете использовать ту же услугу в своих модульных тестах. Просто введите класс обслуживания в свой модульный тест и создайте исходные данные.

Смежные вопросы