Данные о семенах для нанесения на грааль - PullRequest
2 голосов
/ 24 апреля 2010

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

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

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

Ответы [ 5 ]

2 голосов
/ 26 апреля 2010

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

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

2 голосов
/ 10 мая 2011

Другим ответом будет использование run-script Grails. Это позволит вам переместить то, что вы можете поместить в начальный загрузчик, и сохранить его там, где вы хотите в своей файловой системе (возможно, за пределами кодовой базы). Точно так же вы можете установить консольный плагин и через него загрузить код в работающее приложение.

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

0 голосов
/ 05 декабря 2017

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

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

0 голосов
/ 28 ноября 2017

загляните в плагин SeedMe: https://github.com/bertramdev/seed-me

seed = {
    author(meta:[key:'name'], name: 'David', description: 'Author Bio Here')
}
0 голосов
/ 26 апреля 2010
...