如何创建 liquibase 变更集自定义规则?
问题
我想在我的团队中制定规则,规定人们不会在不知情的情况下对 liquibase 进行危险的更改。我认为危险的事情,特别是那些使数据库无法用于旧版本应用程序的事情,使得回滚变得不可能。
我想到的解决方案 创建自定义规则来验证变更集,其中我们禁止以下更改: dropColumn、删除、dropTable、renameColumn
所有这些更改都会破坏 Maven 上的构建,除非对同一变更集有类似“我知道我在做什么”的评论。
问题
liquibase 是否提供任何可以创建此规则的扩展点?
最佳答案
您是否考虑过引入代码审查?另一方面,如果您的目标不是禁止使用 dropColumn
,而是对其进行注释以确保开发人员知道他/她在做什么,那么您可以引入两个接口(interface),例如BackwardCompatibleLiquibase
和 BackwardInknownLiquibase
- 第一个接口(interface)将包含“安全”方法,另一个接口(interface)将包含所有这些方法。
恕我直言,最好教育团队中的人员如何进行不会破坏数据库的更改,而不是引入变更集 validator ,因为如果没有人审查变更集,那么人们就有可能破解您的 validator 或添加示例对每个更改集注释“我知道我在做什么”,以便构建始终能够通过
关于java - 创建 liquibase 变更集验证规则,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56820861/