grails - 在Grails中,是否可以将数据库迁移插件配置为在其他插件之前运行?

我在我的应用程序中使用数据库迁移插件,但是在使用具有数据库架构依赖性的其他插件时遇到问题。

我想使用迁移插件来设置/重构数据库,以准备使用新安装的插件(例如,分类插件)。问题在于,迁移插件在其他插件之后加载,因此我的应用程序无法运行,甚至无法运行迁移(不应用模式依赖)。在我看来,数据库迁移应该在其他插件之前运行(在99%的情况下),这似乎很合理。正确?

有没有办法(不使用“def loadBefore”自定义迁移插件)来强制迁移插件首先加载?

谢谢

最佳答案

不幸的是,插件开发人员设置了插件的dependsOn和loadAfter属性。

但是,您可以创建一个新环境,并使用以下config属性
grails.plugin.excludes排除许多插件。

基本上,我将定义用于数据库迁移的grails环境。我将在Config.groovy中为此环境定义一个数据源:

environments {
  prodMig {
    grails.plugin.excludes = 'interferingPlugin1,interferingPlugin2'
  }
}

这将排除prodMig环境中的plugins-interfer-plugin1和interfering-plugin2。

然后,您可以像这样运行您的databse迁移命令:

grails -Dgrails.env=prodMig dbm-update

https://stackoverflow.com/questions/9969301/

相关文章:

json - 在Grails中编码Joda LocalTime

grails - 什么是java.lang.NoClassDefFoundError:org/apa

grails - Spock测试用例与Grails中的域类没有关系吗?

hibernate - Grails命名查询NOT IN

grails - 无法从Grails连接到MySQL

grails - Grails Spring安全性插件镜像访问控制

mongodb - 使用迭代动态构建条件 block

grails - 动态Groovy上传到Grails应用程序

grails - grails从 Controller 返回xml字符串

grails - 如何在grails中进行网络搜索