2

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

  1. 将所有内容放在 *BootStrap.groovy 文件中。如果域类和测试数据很多,这很乏味。
  2. 编写自定义功能以通过 xml 加载它。groovy 对 xml 的出色支持可能不会太难,但是对于不同的域类有很多 switch 语句。
  3. 使用 Liquibase LoadData api。我看到您可以从 csv 文件中轻松加载数据。

选择 3 似乎是最简单的。但是,我不熟悉 Liquibase。在这种情况下是否很好,或者仅用于迁移,数据库更改等。如果有人可以提供更好的解决方案,或者指向 Liquibase 的示例,那将是很大的帮助..

4

5 回答 5

2

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

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

于 2010-04-26T19:28:39.673 回答
2

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

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

于 2011-05-10T04:24:53.407 回答
0

看看http://www.dbunit.org/http://www.grails.org/DBUnit+Plugin

于 2010-04-26T11:04:34.647 回答
0

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

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

于 2017-12-05T18:28:49.073 回答
0

查看 SeedMe 插件: https ://github.com/bertramdev/seed-me

seed = {
    author(meta:[key:'name'], name: 'David', description: 'Author Bio Here')
}
于 2017-11-28T19:26:12.327 回答