【问题标题】:Flyway introduction on existing db现有数据库的 Flyway 介绍
【发布时间】:2018-07-10 16:20:34
【问题描述】:

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

让我解释一下原因:

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

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

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

我用一些脚本 进行了测试,目前看起来不错(“成功”列显示“1”)

我的问题:

  • 负校验和是否正常?
  • 校验和何时为负,何时为正?
  • 您认为这种方法有什么问题吗?

【问题讨论】:

  • 校验和可以是负数,因为它们是使用带符号的 32 位整数计算的。没什么特别的。
  • 感谢您回答前两个问题!

标签: flyway


【解决方案1】:

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

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

我推荐

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

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

希望对你有帮助

【讨论】:

  • 是的,您是对的,“Flyways 的主要目标是从头开始迁移您的数据库”。这就是为什么我要问从现有数据库迁移是否有任何问题并跳过从头开始迁移的可能性
  • 主要问题是不能从头开始创建数据库,但这是否是一个主要的痛苦只有你可以决定。例如:一个 5 人的团队在本地开发数据库上工作,每个人都需要手动导入数据转储然后基线。将他的作为 v1 脚本将允许 flyway 自动执行此操作,这将是无痛的
猜你喜欢
  • 2010-10-20
  • 1970-01-01
  • 2012-01-30
  • 2013-02-13
  • 1970-01-01
  • 2014-03-12
  • 1970-01-01
  • 2017-08-23
  • 2020-11-25
相关资源
最近更新 更多