用于grails应用的种子数据

时间:2010-04-24 17:19:50

标签: grails seed

将种子(初始或测试)数据加载到grails应用程序中的最佳方法是什么。我正在考虑3个选项

  1. 将所有内容放入* BootStrap.groovy文件中。如果域类和测试数据很多,这将是乏味的。
  2. 编写自定义功能以通过xml加载它。使用groovy提供的优秀xml支持可能不会太困难,但很多switch语句适用于不同的域类。
  3. 使用Liquibase LoadData api。我看到你可以从csv文件中轻松加载数据。
  4. 选择3似乎最简单。但是,我不熟悉Liquibase。它在这种情况下是好的,还是仅用于迁移,数据库更改等。如果有人能提供更好的解决方案,或者指向Liquibase的示例,那将会很有帮助..

4 个答案:

答案 0 :(得分:2)

我正在使用Fixtures插件加载测试/初始数据,它适用于我。

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

答案 1 :(得分:2)

另一个答案是利用grails run-script。这将允许您移动可能放在引导程序中的内容并将其保留在文件系统上的所需位置(可能在代码库之外)。同样,您可以在正在运行的应用程序上安装控制台插件并加载代码。

根据您的数据需求,还可以查看出色的build-test-data插件。

答案 2 :(得分:0)

答案 3 :(得分:0)

我生成种子数据的一种方法是使用服务。我创建了一个类,让我们称之为SeederService。我可以在Bootstrap.groovy中注入这个服务,然后调用我想要的任何方法。

SeederService的优点在于您还可以在单​​元测试中使用相同的服务。只需在单元测试中注入服务类并生成种子数据。