Liquibase是编排数据库更改的绝佳工具。我在群集环境中启动时运行liquibase变更集。第一个应用程序实例放置一个锁(在databasechangeloglock中)表并执行更改集。其他实例,因为他们获取锁定,只是将已执行的更改集标记为MARK_RAN。到目前为止一切都很好。
最近有一个问题,我不得不深入研究databasechangelog表的细节。我期待在元信息中看到实例名称(机器名称)。但我无法在那里找到它。有没有办法自定义liquibase行为,以便它将实例名称作为元信息写入databasechangelog表?
谢谢!
答案 0 :(得分:1)
这可能不得不改变Liquibase本身 - 你无法对配置做任何事情。为此目的,DATABASECHANGELOGLOCK
表确实有一列LOCKEDBY
,但DATABASECHANGELOG
表的设计并不在意。如果你想在部署变更时跟踪谁在运行Liquibase,你就必须做我们在Datical所做的事情 - 我们有自定义代码包装Liquibase。我们有一个类在部署发生时监听来自Liquibase的事件,然后我们将该信息写入一个跟踪所有这些信息的“审计”数据库。