【问题标题】:Can flyway handle migration after validating the DB?验证数据库后,flyway 可以处理迁移吗?
【发布时间】:2012-11-21 23:07:23
【问题描述】:

flyway 可以在迁移之前对数据库进行验证检查吗?

场景 1

例如:我正在尝试在现有数据库上执行 flyway。我已经在我的 db_users 表中插入了一些用户。

但是我的 sql 脚本有创建 db_users 表的语句以及所有用户的插入语句,包括已经插入的用户。

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

场景 2

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

场景 3

我在 V2 sql 脚本中有一个 create table 语句。但是在启动我的应用程序后,我手动删除了该表。下次启动应用时,Flyway会识别出DB的变化并再次执行V2吗?

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

【问题讨论】:

  • 如果在对模式运行后修改 V2 脚本,您将遇到哈希验证问题。考虑创建一个 V4 脚本来进行更改。即使它是冗长的,你也会使用而不是反对这个工具。

标签: flyway


【解决方案1】:

您所问的一切都在文档中。如果它们不够清楚,请告诉我如何改进它们。如果找不到信息,请告诉我原因。

场景一:https://flywaydb.org/documentation/existing

场景二:https://flywaydb.org/documentation/command/validate

场景三:https://flywaydb.org/documentation/faq#outside-changes

【讨论】:

  • 对于场景 3,Flyway 是否在验证步骤中捕捉到外部变化?我们正在寻找可以确保我们生成的模式匹配的东西。您的链接表明我们不应该进行外部更改,我们同意。问题是,我们能保证他们没有吗?
猜你喜欢
  • 2018-08-28
  • 2016-10-01
  • 1970-01-01
  • 2013-06-02
  • 2017-07-10
  • 2013-03-06
  • 2014-08-02
  • 2015-12-19
  • 2018-01-22
相关资源
最近更新 更多