Flyway 对现有数据库的介绍

Mar*_*ier 5 flyway

我想在现有的生产数据库上介绍 flyway。我已阅读https://flywaydb.org/documentation/existing但我想跳过“从生产中提取 DDL 和参考数据提取”这一步

让我解释一下原因:

  • 我计划在 DEV 中拥有一个更接近生产数据的数据库,因此我将进行 PROD 转储,将客户相关数据匿名化并将其放在 DEV 上

当 DEV flyway 中的 PROD 具有相同的架构时,将用于迁移。我的方法是使用标志baselineOnMigrate 启动flyway,以便自动创建内部管理表“flyway_schema_history”。

我知道缺点是不能通过 flyway 从头开始​​创建数据库,但除此之外它应该可以解决。

我用一些脚本做了一个测试 flyway_schema_history 到目前为止看起来不错(“成功”列显示“1”)

我的问题:

  • 负校验和好吗?
  • 校验和何时为负,何时为正?
  • 你认为这种方法有什么问题吗?

saw*_*303 1

您正在谈论 DDL(数据定义语言),并且在同一句话中您正在匿名化现有数据(DML,数据修改语言)。也许你混淆了两种不同的东西。

Flyways 的主要目标是从头开始迁移数据库。这意味着创建、更改和删除表和其他数据库对象。

我建议

  • 从生产数据库中提取 DDL 并将其添加为 V1 迁移脚本

  • 处理开发环境的数据插入和匿名化。

希望这可以帮助

  • 主要问题是无法从头开始创建数据库,但这是否是一个主要问题只有您可以决定。例如:一个由 5 人组成的团队负责本地开发数据库,​​每个人都需要手动导入数据转储,然后导入基线。将他作为 v1 脚本将允许 Flyway 自动执行此操作,这将是无痛的 (2认同)