所以我有一个正在生产的mysql数据库。因为它是非常大的变化需要很长时间,因此我们要做截断表,添加列需要很长时间(想想几个小时)。 Liquibase在大约半小时的时间内超时(并不太重要)所以为了让我们做出改变,我们需要手动完成并记录之后的更改。我们正在重构我们的数据库,使其相当小,并添加了几个列,但由于这是在生产中并且经常处于负载状态,因此我们不会丢失任何传入的数据而不会对我们的用户和我们自己造成大的影响。我们如何在Liquibase更改日志中记录我们的更改,以便在下次运行时它不会尝试重新应用我们的修复,但它也将允许我们为我们的开发环境保留相同的更改日志。
作为相关说明,我们最近发现有人在几年前对prod数据库进行了更改并且没有在liquibase中记录它,所以是否可以在更改日志中回填一行?
答案 0 :(得分:1)
要在Liquibase表中记录更改,请使用changelogsync命令。这会将行放入与更改日志中每个更改集对应的DATABASECHANGELOG
表中。
您可以对“回填”问题执行相同的操作 - 在更改日志中创建与生产中的实际更改相对应的更改集,然后使用changelogsync告知特定数据库已经部署了更改。