什么是Flyway基线功能有用?

时间:2015-01-15 20:14:59

标签: flyway

尽管在Flyway网站上阅读了所有可用的文档,我仍然不明白什么是基线好处。有人可以用简单的英语解释它并提到这个命令的一些用例吗?

1 个答案:

答案 0 :(得分:47)

例如,在版本V1_0__baseline.sql中对数据库进行基线化,指示Flyway仅应用在V1_0之后创建的迁移脚本。它通过在Flyway使用的SCHEMA_VERSION表中插入迁移条目来实现此目的。运行迁移时,只有在版本高于基准版本时才会应用可用的迁移脚本。

实施例

您希望在生产和开发数据库中使用Flyway。您只创建一个模式转储生产。这将是使用Flyway创建新的空数据库时应用的第一个迁移脚本。

但是,由于您现有的生产和开发机器已经在此版本上,因此您不希望应用此初始脚本。为了防止这种情况,您需要创建一个SCHEMA_VERSION表并在表中插入“1_0”以指示Flyway数据库已经是1_0。您可以运行Flyway基线命令,而不是手动创建此表并通过SQL插入行。

然后,几个星期后,还有另一个数据库没有带到Flyway,但仍然在应用更新脚本(可能你没有时间)。当您将此数据库带到Flyway时,您可能需要在V3_0或其他某个版本上对其进行基线化。