2012-12-04 58 views
1

在迁移之前,flyway可以对数据库执行验证检查吗?验证数据库后,flyway是否可以处理迁移?

方案1

对于例如:我想在现有的数据库执行的飞行路线。我已经向db_users表中插入了几个用户。

但是我的sql脚本为db_users表创建语句,并为所有用户(包括已插入的用户)插入语句。

我可以做,IF NOT_EXISTS在创建表之前检查,但在每次插入之前很难做检查。

方案2

我已经在我的数据库迁移脚本V1,V2,V3。我修改脚本V2并进行一些更改。下次启动应用程序时,flyway会识别此更改。

方案3

我在V2的SQL脚本CREATE TABLE语句。但是在开始我的应用程序之后,我手动删除了表格。下一次当我启动应用程序时,Flyway会识别数据库更改并再次执行V2吗?

请您告诉我如何在Flyway处理这些情况。

+0

你会得到与哈希验证麻烦,如果你修改了V2脚本,它已经对一个模式运行后。考虑创建一个可以进行更改的V4脚本。即使罗嗦,你也会与之合作而不是反对这个工具。 – orbfish

回答

1

您所要求的一切都在文档中。如果他们不够清楚,请告诉我他们如何改进。如果你找不到信息,请告诉我为什么。

方案1:https://flywaydb.org/documentation/existing

方案2:https://flywaydb.org/documentation/command/validate

方案3:https://flywaydb.org/documentation/faq#outside-changes

+1

对于情景3,Flyway是否在验证步骤中捕获外部更改?我们正在寻找能够确保我们的结果模式匹配的东西。您的链接表示我们不应该进行外部更改,我们同意。事情是,我们可以保证他们没有? – Adam