如何让 Liquibase 向 DATABASECHANGELOGLOCK table 添加更多数据?
How to get Liquibase to add more data to DATABASECHANGELOGLOCK table?
在我们的构建服务器中,我们针对一个数据库部署了许多功能分支。问题是有时一个分支中的一些错误脚本导致 LB 在不释放锁的情况下退出。问题是没有简单的方法来找出是什么分支导致的。我们可能有多达 30 个分支不断部署,因为对分支有新的更改。
有没有什么方法(或者我们可以在 Liquibase 中有新功能)设置实例名称,名称可以存储在 table DATABASECHANGELOGLOCK 的 LOCKEDBY 列中,这样我们就可以很容易地找出什么 branch/instance 引起了这个问题?
目前,LOCKEDBY 中只有 IP,所有实例都相同。
我认为要实现此目的,您需要在此处的某处修补 Liquibase:
以某种方式获取附加变量 (属性 file/env variable/etc) 并存储在 table 中。
顺便说一句,在部署具有相同数据库实例的多个分支时要小心,因为您可能会更改一个分支的数据库结构,这会破坏另一个分支。
您可以指定一个系统 属性 插入 LOCKEDBY 列:
System.setProperty("liquibase.hostDescription", "some value");
在我们的构建服务器中,我们针对一个数据库部署了许多功能分支。问题是有时一个分支中的一些错误脚本导致 LB 在不释放锁的情况下退出。问题是没有简单的方法来找出是什么分支导致的。我们可能有多达 30 个分支不断部署,因为对分支有新的更改。
有没有什么方法(或者我们可以在 Liquibase 中有新功能)设置实例名称,名称可以存储在 table DATABASECHANGELOGLOCK 的 LOCKEDBY 列中,这样我们就可以很容易地找出什么 branch/instance 引起了这个问题?
目前,LOCKEDBY 中只有 IP,所有实例都相同。
我认为要实现此目的,您需要在此处的某处修补 Liquibase:
以某种方式获取附加变量 (属性 file/env variable/etc) 并存储在 table 中。
顺便说一句,在部署具有相同数据库实例的多个分支时要小心,因为您可能会更改一个分支的数据库结构,这会破坏另一个分支。
您可以指定一个系统 属性 插入 LOCKEDBY 列:
System.setProperty("liquibase.hostDescription", "some value");