我正在使用Liquibase 3.3.5更新我的数据库。具有上下文是仅执行变更日志的特定部分的好方法。但是我不明白,为什么在更新时没有提供上下文,为什么要执行所有变更集。考虑以下示例:
所以
对我来说,这根本没有道理:)。
我希望仅执行变更集B,因为它没有定义特定的上下文。
他们说,在Liquibase上下文示例中:http : //www.liquibase.org/documentation/contexts.html(“使用测试数据的上下文”),应该将变更集标记为“ test”进行测试,并使用给上下文“测试”以应用测试数据。很好-有道理。但
“当需要迁移生产数据库时,请不要包含“测试”上下文,也不包含测试数据。”
因此,如果在执行生产更新时不指定“测试”上下文,那么它也将执行“测试”变更集,因为我根本没有指定上下文。
同样,我希望在执行更新时省去测试,只会执行常规变更集,而无需测试变更集。
还是我在这里想念什么:)?
这就是Liquibase的工作方式-如果您进行更新并且未指定上下文,则所有变更集均被视为适用于该更新操作。
有两种方法可以实施,开发团队必须选择一种。
团队本可以选择选项3(这符合您的期望),但很久以前决定选择选项2,因为这在当时似乎是“最佳”方式。那时我还不在团队里,所以我不知道更多。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句