和 Sqitch 相比,Flyway 是否有运行验证和还原脚本的能力?

Bra*_*ord 7 flyway

Sqitch 能够运行 Revert 和 Verification 脚本。他们的 Flyway 计划是否或是否支持此类能力?

小智 2

我不熟悉 Sqitch 的功能,但我可以简要解释一下 Flyway 的功能。

Flyway 确实支持通过“撤消”命令恢复脚本。该过程的工作原理是允许您在标准迁移脚本旁边指定“撤消迁移”。撤消迁移知道如何恢复标准迁移脚本中指定的更改。请注意,这只是专业版功能。

撤消迁移不适用于可重复迁移,它主要用于视图、过程等。这些应该只是修改然后正常迁移。

Flyway 还允许您使用Validate命令在一定程度上验证您的迁移。验证检查应用于数据库的迁移是否与项目中的迁移匹配。

从简要浏览 Sqitch 文档来看,他们的验证功能似乎允许您为每个迁移指定一个脚本,以查看运行它是否有意义。Flyway 本身并不支持这样的过程。然而,由于迁移脚本只是普通的 SQL,因此没有什么可以阻止您在迁移脚本本身中手动包含此类验证逻辑。

作为一种潜在的替代方案,您可以使用试运行功能,该功能会生成最终用于迁移数据库的脚本。您可以针对测试环境执行试运行脚本,以查看部署是否成功。试运行也是一项专业功能。

我希望这有帮助。

谢谢

米基尔