Grails 2.3 迁移脚本不会在集成测试期间运行

Posted

技术标签:

【中文标题】Grails 2.3 迁移脚本不会在集成测试期间运行【英文标题】:Grails 2.3 Migration Scripts Won't Run During Integration Tests 【发布时间】:2013-12-03 14:07:09 【问题描述】:

以前在 Grails 2.2.4 中,当运行集成测试时,数据库迁移插件会启动 liquibase 并读取我的 changelog.xml 文件并用我的数据填充内存数据库。

然后我的集成测试将查询该数据,一切都很好。升级到 Grails 2.3.2 后,当我开始集成测试时,迁移脚本不再运行。

我尝试添加:

grails.plugin.databasemigration.autoMigrateScripts = ['RunApp', 'TestApp']

相信这会让迁移在测试期间运行。然而这并没有帮助。

是否可以在 Grails 2.3.2 中在集成测试期间运行迁移脚本?如果有怎么办?

【问题讨论】:

看来你已经在邮件列表中回复了:-) 我做到了!我只是无法在这里回答我自己的问题,因为 *** 有 24 小时的时间回答你自己的问题。 【参考方案1】:

经过大量搜索,我已经解决了这个问题。我最终在插件 JIRA 上找到了这个:http://jira.grails.org/browse/GPDATABASEMIGRATION-160

事实证明这实际上是插件中的一个错误,临时解决方法是使用:grails.plugin.databasemigration.forceAutoMigrate = true

希望这个问题在插件的下一个版本中得到修复,在此之前我希望这对某人有所帮助。

【讨论】:

与 grails 3 相同的问题,以上解决方案不起作用。 forceAutoMigrate 为我工作。圣杯 2.4.4。构建配置:org.liquibase:liquibase-core:2.0.5org.grails.plugins:database-migration:1.4.1 可能需要注意,现在很久以后,这张票仍然没有解决,但现在存在于这里:grails.atlassian.net/browse/GPDATABASEMIGRATION-160

以上是关于Grails 2.3 迁移脚本不会在集成测试期间运行的主要内容,如果未能解决你的问题,请参考以下文章

如何将 Grails 2.1 迁移到 Grails 2.3 应用程序?

启动后如何运行 Grails 数据库迁移

Grails 2.3 数据库迁移上的“加载插件管理器时出错:TomcatGrailsPlugin”

从 Intellij IDEA 开始的慢速 Grails 测试

Flyway 与 Spring Boot 的集成不会在嵌入式 H2 数据库上执行迁移脚本

Grails 2.3 使用 IVY 解析器进行单元测试