我们希望在现有模式上引入数据库模式版本控制,因为当前处理模式版本控制(手动)的方式导致生产中各种数据库中模式的差异。
为了定义:当数据库'在这个问题中使用,我的意思是1个客户可以使用的表格,视图,程序等。每个客户都有自己的数据库。 1个MySQL服务器实例中的几个数据库。我们有几台MySQL服务器正在运行。
上下文:
问题:
我尝试过Flyway(命令行)并定义了某个版本的基线,并创建了迁移脚本以将数据库版本迁移到最新版本的模式。显然,当您从已知基线开始时,这种方法很有效。 因此,我们需要将所有数据库迁移到已知基准。
当我阅读有关设置基线的文档和多篇文章时,所有这些都归结为:'弄清楚基线应该是什么,并手动将数据库迁移到此基线'。
但是,由于生产中有多个数据库(> 500),即使在同一版本中,也会略有不同,因此无法手动将数据库更改为所需的基线。
是否有一种方法可以使用Flyway或Liquibase来说出将此模式迁移到此基线的信息。如果此列与所需的架构更改表修改列不匹配,则归结为一组''语句?
我只会满足于表中的更改,无论如何都要重新创建所有视图,触发器,程序等。
我读到Liquibase可以进行“回滚”,但由于MySQL不支持DDL上的事务,我想知道这是在Liquibase中实现还是仅适用于支持事务的数据库服务器关于DDL。 如果有人知道,请告诉我。这可能是从Flyway转移到Liquibase的一个论据。