Java 创建liquibase变更集验证规则

Java 创建liquibase变更集验证规则,java,maven,liquibase,Java,Maven,Liquibase,如何创建liquibase变更集自定义规则 问题 我想在我的团队里制定一些规则,在这些规则中,人们不会在不知情的情况下对酗酒做出危险的改变。我考虑了一些危险的东西,特别是那些使数据库对旧版本的应用程序不可用的东西,使回滚变得不可能。 我想的解决方案 创建自定义规则以验证变更集,在该规则中,我们禁止以下更改: dropColumn,删除,dropTable,重命名Column 所有这些更改都会破坏maven上的构建,除非在同一更改集上有类似“我知道我在做什么”的注释 问题 liquibase是否提

如何创建liquibase变更集自定义规则

问题

我想在我的团队里制定一些规则,在这些规则中,人们不会在不知情的情况下对酗酒做出危险的改变。我考虑了一些危险的东西,特别是那些使数据库对旧版本的应用程序不可用的东西,使回滚变得不可能。 我想的解决方案 创建自定义规则以验证变更集,在该规则中,我们禁止以下更改: dropColumn,删除,dropTable,重命名Column

所有这些更改都会破坏maven上的构建,除非在同一更改集上有类似“我知道我在做什么”的注释

问题


liquibase是否提供了我可以创建此规则的扩展点?

您是否考虑过引入代码审查?另一方面,如果您的目标不是禁止使用
dropColumn
,但要对其进行注释以确保开发人员知道他/她在做什么,则可以引入两个接口,例如
backardcompatiblequibase
backardincomatibleLiquibase
——第一个接口将包含“安全”方法,另一个接口将包含所有这些方法


我认为最好是教育团队成员如何做出不会破坏DB的更改,而不是引入变更集验证程序,因为如果没有人审查变更集,那么有可能有人会攻击您的验证程序,或者在每个变更集中添加示例注释“我知道我在做什么”,这样构建将始终通过

您考虑过引入代码审查吗?另一方面,如果您的目标不是禁止使用
dropColumn
,但要对其进行注释以确保开发人员知道他/她在做什么,则可以引入两个接口,例如
backardcompatiblequibase
backardincomatibleLiquibase
——第一个接口将包含“安全”方法,另一个接口将包含所有这些方法


我认为最好是教育团队成员如何做出不会破坏DB的更改,而不是引入变更集验证程序,因为如果没有人审查变更集,那么有可能有人会攻击您的验证程序,或者在每个变更集中添加示例注释“我知道我在做什么”,这样构建将始终通过

我们有适当的代码审查。这将是一个保障工具,教育也是如此。出现问题时的想法是错误,解释了更改的风险。我忘记了liquibase的更改集是用XML编写的,而不是java代码。然后看一看可能的liquibase扩展:然而,我认为您应该如何教育您的团队进行代码审查我们已经准备好了代码审查。这将是一个保障工具,教育也是如此。出现问题时的想法是错误,解释了更改的风险。我忘记了liquibase的更改集是用XML编写的,而不是java代码。然后看一看可能的liquibase扩展:不过,您应该如何教育您的团队进行代码审查