Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java spring项目中的大量数据库迁移_Java_Spring_Testing_Liquibase - Fatal编程技术网

Java spring项目中的大量数据库迁移

Java spring项目中的大量数据库迁移,java,spring,testing,liquibase,Java,Spring,Testing,Liquibase,我有一个超过50个liquibase迁移的项目。   我有桌子:货币,国家。。。他们现在正在进行迁移。 问题是,对于运行上下文的每个集成测试,我都必须完成50次迁移。这需要时间。正如您所知,spring并不是最快的框架。 我能做什么?Gradle通过所有测试的时间是10分钟 当然,你可能会说这是一个整体,是的,但客户不想分割逻辑,因为团队的平均水平很低 如何加快集成测试的速度?根据迁移的类型,它们可能不是实际的性能问题。目前,我在一个项目中看到了大约130次迁移,虽然迁移确实需要一定的时间,但与

我有一个超过50个liquibase迁移的项目。   我有桌子:货币,国家。。。他们现在正在进行迁移。 问题是,对于运行上下文的每个集成测试,我都必须完成50次迁移。这需要时间。正如您所知,spring并不是最快的框架。 我能做什么?Gradle通过所有测试的时间是10分钟

当然,你可能会说这是一个整体,是的,但客户不想分割逻辑,因为团队的平均水平很低


如何加快集成测试的速度?

根据迁移的类型,它们可能不是实际的性能问题。目前,我在一个项目中看到了大约130次迁移,虽然迁移确实需要一定的时间,但与设置和拆除测试上下文所需的时间相比,这算不了什么。从一张白纸开始,我希望它最多能刮掉10-20秒

不过,出于其他原因重新启动可能是有意义的。例如,我们有2015年的变更集,这些变更集在其他变更集中回滚,所以它们只是额外的混乱。这不是很具体,但是你可以移除所有的变更集,并从一开始就在项目的中间。但是,您需要小心,这样才能知道数据库的正确状态(没有可能进行的任何新更改集)。如文档中所述,它通常表示生产数据库的状态


但是请记住,这并不能保证显著的加速。

Spring速度非常快,执行SQL需要时间,Spring(或liquibase)无法为您提供任何帮助。另外,您是否真的需要让Spring用于所有测试,或者您只是在偷懒,在每个测试中都使用
@SpringBootTest
(或者类似的东西)(或者至少是太多的测试)。我强烈建议您查看一下您的测试,并检查您是否真的需要在这些测试中使用Spring。