Database Flyway:如何防止开发者在中央数据库上意外运行迁移?

Database Flyway:如何防止开发者在中央数据库上意外运行迁移?,database,spring-boot,flyway,Database,Spring Boot,Flyway,当我针对(中心)数据库进行调试时,Flyway可以更新数据库模式。当我的本地应用程序在比部署的应用程序更远的开发分支上运行时,就会发生这种情况。 运行本地应用程序将调用中央数据库上的迁移脚本。在最坏的情况下,这当然可能会更新生产数据库 另一个场景是两个开发人员使用测试数据对一个开发数据库进行操作。两个开发人员都在开发不同的功能,并且都在修改模式。当一个开发人员更新数据库时,另一个开发人员(可能)会遇到校验和问题,或者对所做的更改感到惊讶 我正在考虑解决这些问题的办法 当然,Flyway之外还有一

当我针对(中心)数据库进行调试时,Flyway可以更新数据库模式。当我的本地应用程序在比部署的应用程序更远的开发分支上运行时,就会发生这种情况。 运行本地应用程序将调用中央数据库上的迁移脚本。在最坏的情况下,这当然可能会更新生产数据库

另一个场景是两个开发人员使用测试数据对一个开发数据库进行操作。两个开发人员都在开发不同的功能,并且都在修改模式。当一个开发人员更新数据库时,另一个开发人员(可能)会遇到校验和问题,或者对所做的更改感到惊讶

我正在考虑解决这些问题的办法

当然,Flyway之外还有一些解决方案,比如只连接一次性数据库,或者阻止访问重要数据库


我对Flyway提供的选项感兴趣。

有一些选项,在您的情况下似乎很有用

对于第一个,您可以使用DB的相同版本设置
target
属性,以防止Flyway对其进行更新

对于两个开发人员同时使用同一个DB实例的第二种情况,您可以尝试关闭
validateOnMigrate
属性以避免验证失败,或者关闭
ignoreMissingMigrations
以忽略一些开发人员尚未完成的迁移

您可以通过控制台属性找到迁移任务的所有可用属性。你没有指定,但是你确实运行了Flyway,如果它是vie Spring Boot完成的,那么并不是所有这些属性都可用,只是其中的一些-你可以在Flyway部分找到它

但对于大多数情况,我认为,最好的解决方案是在开发和调试期间关闭Flyway迁移,如果可能的话,并用于交付现成的功能