Flyway 可以检查意外的(外部造成的)差异吗?

Can Flyway check for unexpected (externally made) differences?

我正在评估 Flyway,想知道它是否可以检查是否存在任何外部更改? IE。如果有人在 Flyway 之外直接对数据库进行了更改,我可以捕捉到吗?

我尝试了验证和信息,但它似乎没有注意到。

不,不能。 Flyway 希望您通过 Flyway 对您希望它管理的内容(结构、参考数据...)进行所有更改。

在 Redgate,我们支持模式快照的概念。如果您使用 SQL 服务器或 Oracle(因为这些是我们最支持的数据库),那么您可以在部署后拍摄快照,然后在下次部署时将此工件与目标数据库进行比较,以确保它没有 "drifted"。我们的工具还可以输出一个候选的 Flyway 迁移脚本,确保 Flyway 与实际目标一致。如果您对这种方法感兴趣,我可以向您发送有关如何实现的示例脚本。但请记住,这仅适用于 Oracle 和 SQL 服务器。