在使用DB迁移插件时,我遇到了一个有趣的问题。在常规的war部署中,我们一次又一次地需要运行某些用于数据更新的脚本,以适应更改的代码。虽然我们仍然可以在外部运行这些程序,但我们试图找到一种方法将它们添加到DB迁移过程中。
现在,可以将其中一组脚本转换为迁移脚本,并添加到grailsChange部分中,它们可以无缝地运行。但是还有另一组脚本,由于几个原因,这些脚本是有问题的。
因此,我的问题是,是否有更优雅的方法从DB迁移脚本中触发外部grails或groovy脚本,这样每次我们需要运行脚本文件时,我们都可以使用更新的调用创建changelog,并使用应用程序标记它。
我想有一段时间关于这件事有一篇关于堆叠溢出的帖子,但对于我一生的挚爱,我再也找不到它了。如能对此提供任何帮助,将不胜感激。
谢谢
发布于 2014-01-24 16:31:36
这些脚本可以添加到bootstrap.groovy中吗?那可能是最简单的。只需使用groovy.sql.Sql运行脚本即可。
另一个更实用和更灵活的选项是创建一个服务来运行脚本(groovy.sql.Sql),并创建一个域类来跟踪已经运行的脚本。您可以在bootstrap.groovy文件中触发服务,并且该服务可以查看您设置的迁移域类,以查看脚本是否已经运行。您甚至可以使用此机制的前端来上传脚本文件,以便在运行时执行。
让我知道更多的细节,你想要什么,我可以尝试更详细地在我的答复。
https://stackoverflow.com/questions/20085580
复制相似问题