flywaydb V4.2.0中的更改包括禁用oracle system schemas的清除功能。这是一个明智的举动,但是给我们带来了问题,因为我们在oracle 12c的根容器中创建了许多模式,可能是天真的。这意味着我们有许多模式被flyway认为是oracle系统模式,尽管它们实际上是用户创建的,它拒绝清理。
技术上最正确的解决方案是在PDB而不是根容器中创建这些模式,但由于迁移到具有我们拥有的大量模式的PDB所需的工作,它可能不是一个选项企业愿意考虑,当然不是一次性地影响所有模式的大爆炸方式。
理想情况下,我们希望能够在使用这些模式时覆盖或修改flyway的行为,以便在开发和测试期间进行清理。是否有现成的解决方案可以通过设置flyway执行选项或更改目标数据库中的元数据来实现此目的?这将允许我们以适当的速度迁移到正确配置的PDB容器,并仍然升级到V4.2.0或更高版本的flyway版本。如果没有解决方案,我们就会遇到flyway V4.1.2,直到我们迁移了我们使用的所有模式。