0

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

我想使用迁移插件来设置/重构我的数据库,以准备使用新安装的插件(例如分类插件)。问题是迁移插件在其他插件之后加载,因此我的应用程序在我什至可以运行迁移之前就失败了(未应用架构依赖项)。在我看来,数据库迁移应该在其他插件之前运行(在 99% 的情况下)是合理的。正确的?

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

谢谢

4

1 回答 1

1

不幸的是,插件的dependsOnloadAfter属性是由插件开发人员设置的。

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

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

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

这将从您的 prodMig 环境中排除插件 interfering-plugin1 和 interfering-plugin2。

然后你可以像这样运行你的数据库迁移命令:

grails -Dgrails.env=prodMig dbm-update
于 2012-04-11T13:50:45.547 回答