事后如何在 liquibase 中记录对数据库的更改?
How do I record changes to a database in liqubase after the fact?
所以我有一个 mysql 数据库,现在正在生产中。因为它非常大的变化需要很长时间,所以我们做像截断表、添加列这样的事情需要很长时间(想想几个小时)。 Liquibase 有时会在半小时左右超时(不要紧,时间太短)所以为了让我们进行更改,我们需要手动进行并在之后记录更改。我们正在重构我们的数据库以使其更小并添加几列,但由于这是在生产中并且一直处于负载之下,我们不能丢失任何传入数据而不会对我们的用户和我们自己造成重大影响。我们如何在 Liquibase 更改日志中记录我们的更改,以便下次运行时它不会尝试重新应用我们的修复,但它也将允许我们为我们的开发环境保留相同的更改日志。
作为相关说明,我们最近发现有人在几年前对 prod 数据库进行了更改,但没有将其记录在 liquibase 中,因此是否可以在更改日志中回填一行?
要在 Liquibase table 中记录您的更改,请使用 changelogsync 命令。这会将行放入 DATABASECHANGELOG
table 对应于变更日志中的每个变更集。
你可以对 'back fill' 问题做同样的事情——在变更日志中创建一个变更集,它对应于生产中所做的实际变更,然后使用 changelogsync 告诉特定的数据库变更已经发生已部署。
所以我有一个 mysql 数据库,现在正在生产中。因为它非常大的变化需要很长时间,所以我们做像截断表、添加列这样的事情需要很长时间(想想几个小时)。 Liquibase 有时会在半小时左右超时(不要紧,时间太短)所以为了让我们进行更改,我们需要手动进行并在之后记录更改。我们正在重构我们的数据库以使其更小并添加几列,但由于这是在生产中并且一直处于负载之下,我们不能丢失任何传入数据而不会对我们的用户和我们自己造成重大影响。我们如何在 Liquibase 更改日志中记录我们的更改,以便下次运行时它不会尝试重新应用我们的修复,但它也将允许我们为我们的开发环境保留相同的更改日志。
作为相关说明,我们最近发现有人在几年前对 prod 数据库进行了更改,但没有将其记录在 liquibase 中,因此是否可以在更改日志中回填一行?
要在 Liquibase table 中记录您的更改,请使用 changelogsync 命令。这会将行放入 DATABASECHANGELOG
table 对应于变更日志中的每个变更集。
你可以对 'back fill' 问题做同样的事情——在变更日志中创建一个变更集,它对应于生产中所做的实际变更,然后使用 changelogsync 告诉特定的数据库变更已经发生已部署。