与Sqitch相比,Flyway能否运行验证并恢复脚本?

时间:2017-05-11 16:49:29

标签: flyway

Sqitch能够运行Revert和Verification脚本。他们是否计划让Flyway支持这种能力?

1 个答案:

答案 0 :(得分:0)

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

Flyway确实通过Undo命令支持还原脚本。该过程通过允许您在标准迁移脚本旁边指定“撤消迁移”来进行。撤消迁移知道如何还原标准迁移脚本中指定的更改。请注意,这仅是专业功能。

撤消迁移不适用于Repeatable Migrations,后者主要用于视图,过程等。只需修改这些内容,然后正常迁移即可。

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

通过简要浏览Sqitch文档,您似乎可以通过其验证功能为每次迁移指定一个脚本,以查看运行该脚本是否有意义。 Flyway本身并不支持这种过程。但是,由于迁移脚本只是纯SQL,因此没有什么可以阻止您在迁移脚本本身中手动包含这种验证逻辑。

作为一种可能的替代方法,您可以使用Dry Run功能,该功能会生成最终将用于迁移数据库的脚本。您可以在测试环境中执行“空运行”脚本,以查看部署是否成功。空转也是Pro的功能。

我希望有帮助。

谢谢

Mikiel