如何使用liquibase或flyway

时间:2016-05-30 11:38:49

标签: mysql database liquibase flyway

我们希望在现有模式上引入数据库模式版本控制,因为当前处理模式版本控制(手动)的方式导致生产中各种数据库中模式的差异。

为了定义:当数据库'在这个问题中使用,我的意思是1个客户可以使用的表格,视图,程序等。每个客户都有自己的数据库。 1个MySQL服务器实例中的几个数据库。我们有几台MySQL服务器正在运行。

上下文:

  • 生产中的多个MySQL数据库
  • 数据库版本由使用数据库的产品定义,即生产中存在多个版本

问题:

  • 相同版本的数据库在架构定义中略有不同
  • 不清楚架构迁移是否已正确应用

我尝试过Flyway(命令行)并定义了某个版本的基线,并创建了迁移脚本以将数据库版本迁移到最新版本的模式。显然,当您从已知基线开始时,这种方法很有效。 因此,我们需要将所有数据库迁移到已知基准。

当我阅读有关设置基线的文档和多篇文章时,所有这些都归结为:'弄清楚基线应该是什么,并手动将数据库迁移到此基线'。

但是,由于生产中有多个数据库(> 500),即使在同一版本中,也会略有不同,因此无法手动将数据库更改为所需的基线。

是否有一种方法可以使用Flyway或Liquibase来说出将此模式迁移到此基线的信息。如果此列与所需的架构更改表修改列不匹配,则归结为一组''语句?

我只会满足于表中的更改,无论如何都要重新创建所有视图,触发器,程序等。

我读到Liquibase可以进行“回滚”,但由于MySQL不支持DDL上的事务,我想知道这是在Liquibase中实现还是仅适用于支持事务的数据库服务器关于DDL。 如果有人知道,请告诉我。这可能是从Flyway转移到Liquibase的一个论据。

0 个答案:

没有答案