首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Grails - DB迁移变更日志中的调用脚本

Grails - DB迁移变更日志中的调用脚本
EN

Stack Overflow用户
提问于 2013-11-20 01:20:18
回答 1查看 523关注 0票数 0

在使用DB迁移插件时,我遇到了一个有趣的问题。在常规的war部署中,我们一次又一次地需要运行某些用于数据更新的脚本,以适应更改的代码。虽然我们仍然可以在外部运行这些程序,但我们试图找到一种方法将它们添加到DB迁移过程中。

现在,可以将其中一组脚本转换为迁移脚本,并添加到grailsChange部分中,它们可以无缝地运行。但是还有另一组脚本,由于几个原因,这些脚本是有问题的。

  1. 这些脚本一次又一次地运行,因此每次运行时都必须继续更改id,因为我们不想重复代码,从而丢失了原始更改。
  2. 我们从命令行将params传递给这些脚本,通过上面的方法,我们必须将它们添加到脚本本身,从而导致可维护性问题。

因此,我的问题是,是否有更优雅的方法从DB迁移脚本中触发外部grails或groovy脚本,这样每次我们需要运行脚本文件时,我们都可以使用更新的调用创建changelog,并使用应用程序标记它。

我想有一段时间关于这件事有一篇关于堆叠溢出的帖子,但对于我一生的挚爱,我再也找不到它了。如能对此提供任何帮助,将不胜感激。

谢谢

EN

回答 1

Stack Overflow用户

发布于 2014-01-24 16:31:36

这些脚本可以添加到bootstrap.groovy中吗?那可能是最简单的。只需使用groovy.sql.Sql运行脚本即可。

另一个更实用和更灵活的选项是创建一个服务来运行脚本(groovy.sql.Sql),并创建一个域类来跟踪已经运行的脚本。您可以在bootstrap.groovy文件中触发服务,并且该服务可以查看您设置的迁移域类,以查看脚本是否已经运行。您甚至可以使用此机制的前端来上传脚本文件,以便在运行时执行。

让我知道更多的细节,你想要什么,我可以尝试更详细地在我的答复。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20085580

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档