Java spring项目中的大量数据库迁移
我有一个超过50个liquibase迁移的项目。 我有桌子:货币,国家。。。他们现在正在进行迁移。 问题是,对于运行上下文的每个集成测试,我都必须完成50次迁移。这需要时间。正如您所知,spring并不是最快的框架。 我能做什么?Gradle通过所有测试的时间是10分钟 当然,你可能会说这是一个整体,是的,但客户不想分割逻辑,因为团队的平均水平很低Java spring项目中的大量数据库迁移,java,spring,testing,liquibase,Java,Spring,Testing,Liquibase,我有一个超过50个liquibase迁移的项目。 我有桌子:货币,国家。。。他们现在正在进行迁移。 问题是,对于运行上下文的每个集成测试,我都必须完成50次迁移。这需要时间。正如您所知,spring并不是最快的框架。 我能做什么?Gradle通过所有测试的时间是10分钟 当然,你可能会说这是一个整体,是的,但客户不想分割逻辑,因为团队的平均水平很低 如何加快集成测试的速度?根据迁移的类型,它们可能不是实际的性能问题。目前,我在一个项目中看到了大约130次迁移,虽然迁移确实需要一定的时间,但与
如何加快集成测试的速度?根据迁移的类型,它们可能不是实际的性能问题。目前,我在一个项目中看到了大约130次迁移,虽然迁移确实需要一定的时间,但与设置和拆除测试上下文所需的时间相比,这算不了什么。从一张白纸开始,我希望它最多能刮掉10-20秒 不过,出于其他原因重新启动可能是有意义的。例如,我们有2015年的变更集,这些变更集在其他变更集中回滚,所以它们只是额外的混乱。这不是很具体,但是你可以移除所有的变更集,并从一开始就在项目的中间。但是,您需要小心,这样才能知道数据库的正确状态(没有可能进行的任何新更改集)。如文档中所述,它通常表示生产数据库的状态
但是请记住,这并不能保证显著的加速。Spring速度非常快,执行SQL需要时间,Spring(或liquibase)无法为您提供任何帮助。另外,您是否真的需要让Spring用于所有测试,或者您只是在偷懒,在每个测试中都使用
@SpringBootTest
(或者类似的东西)(或者至少是太多的测试)。我强烈建议您查看一下您的测试,并检查您是否真的需要在这些测试中使用Spring。