当前位置: 首页 > 知识库问答 >
问题:

为什么在更新时未指定时执行所有上下文?

西门磊
2023-03-14
  • 变更集A:context=test
  • 变更集B:没有上下文
  • 变更集C:context=prod

所以

  • 执行带有context=test的更新,将执行变更集A+B
  • 执行带有context=prod的更新,将执行变更集B+C
  • 在没有上下文的情况下执行更新,将执行变更集A+B+C

同样,我希望在更新执行时省略测试,只执行常规变更集,而不执行测试变更集。

或者我在这里漏掉了什么:)?

共有1个答案

仇承志
2023-03-14

这就是Liquibase的工作方式--如果您执行更新而不指定上下文,那么所有变更集都被认为适用于该更新操作。

有几种方法可以实现这一点,开发团队必须选择一种。

  1. 如果在更新操作期间不指定上下文,则不考虑变更集。
  2. 如果不指定上下文,则考虑所有变更集。
  3. 如果不指定上下文,则只考虑没有上下文的变更集。
  4. 如果您没有指定上下文,并且所有变更集上都没有上下文,那么将考虑所有变更集,但是如果某些变更集确实有上下文,请转到上面的选项1、2或3。
 类似资料:
  • 问题内容: 与函数相反,类的主体在定义时执行: 出: 为什么会这样呢?它与/方法和类属性有关吗? 问题答案: *Python首次导入模块时, *所有操作 均在模块级别执行。函数体(和生成器表达体)在这里是 例外 ,而不是规则。Python执行所有操作以创建模块中包含的 对象 ;像Python中的所有内容一样,类是对象,函数也是。 类主体使用单独的代码对象的唯一原因是因为类主体是在单独的名称空间中执

  • 与其他包管理器(如)相比,我发现当更新与给定项目相关的包时,有一种奇怪的行为。 还根据留档,和选项 根据composer.json将依赖项升级到最新版本,并更新composer.lock文件。 事实上,正确地更新了新的包版本号。但是没有被修改,并且列出了旧的版本过低的包。 为什么会发生这种情况?是我做错了什么,还是这就是应该怎么做的?如果是这样的话,为什么两个文件中的一个是最新的,而另一个不是最新

  • 我正在使用Hibernate Envers来审核我的日志表,它是使用Spring配置的。但是,在执行更新、修改或删除操作时,不会发生审核。以下是配置。 Spring配置 我已经将@Audited注释添加到实体类中。我使用的是Hibernate core 3.5.0-Final和envers的相同版本。 当我检查hibernate记录的SQL时,我可以看到更新查询已经执行,但没有任何将数据插入审计表

  • 问题内容: 到目前为止,我对Java Generics的理解显然是错误的,即Type Erasure删除了所有类型信息,从而在运行时几乎没有剩余。最近,我偶然发现了一个代码片段,不得不问自己:这种破解是如何工作的?简化后,它表示为: 和 执行Main Class结果。 我们在这里看到的是,T的类型信息在运行时也可用,这与我的最初理解相矛盾。 所以我的问题是:为什么编译器会保留此?这对于某些内部JV

  • 与Java(以字符串形式)相比,您可以执行类似于。 那么,为了将多行代码写入一个常规文件,您将如何在Python中实现这一点呢?

  • 我将Drools与Eclipse和Maven一起用于一个进行许多模式匹配的应用程序。我想使用KieScanner自动更新正在运行的KieSession,而无需重新启动应用程序。但这似乎不起作用。 我使用的是7.24.0。t043用于组织。kie和org。流口水。 我只使用我的本地Maven存储库,所以我已经指定了路径并在我的settings.xml.中设置为true,我还验证了使用最新版本创建一个