【问题标题】:create liquibase changeset validation rules创建 liquibase 变更集验证规则
【发布时间】:2019-06-30 07:19:43
【问题描述】:

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

问题

我想在我的团队中制定规则,人们不会在不知情的情况下对 liquibase 进行危险的更改。我考虑了危险的事情,特别是使数据库对旧版本的应用程序无法使用的事情,从而使回滚变得不可能。

我认为的解决方案 创建一个自定义规则来验证变更集,其中我们禁止更改,例如: dropColumn、删除、dropTable、renameColumn

所有这些更改都会破坏 maven 上的构建,除非在同一个变更集上带有“我知道我在做什么”之类的评论。

问题

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

【问题讨论】:

    标签: java maven liquibase


    【解决方案1】:

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

    恕我直言,最好教育团队中的人员如何进行不会破坏数据库的更改,而不是引入变更集验证器,因为如果没有人审查变更集,那么人们就有可能破解您的验证器或添加示例对每个更改集评论“我知道我在做什么”,因此构建将始终通过

    【讨论】:

    • 我们有代码审查。这将是一种保障工具,也是一种教育。当事情出错时的想法是错误,解释了变化的风险。
    • 我忘记了 liquibase 的变更集是用 XML 编写的,而不是 Java 代码。然后看看可能的 liquibase 扩展:liquibase.jira.com/wiki/spaces/CONTRIB/pages/2424879/Overview 但是恕我直言,您应该对您的团队进行代码审查方面的培训
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-03-02
    • 1970-01-01
    • 2013-02-05
    相关资源
    最近更新 更多