我们基本上有两个liquibase上下文:带有DDL和参考数据的种子,带有一组共享测试数据的 qa 。
这允许我们创建和更新类似生产的数据库实例(context = seed)或qa数据库实例(context = seed,qa)。
我们有时需要在qa环境中复制(部分)生产数据库。
此时,有人可能会尝试使用种子和qa的上下文来更新这样的副本,该副本只看到了context = seed。这肯定最终会失败,但我正在寻找一种方法来使这种方法变得不可能,并且通过一个很好的,易于理解的错误信息快速失败。
liquibase支持吗?
这样做的好方法是什么?
答案 0 :(得分:0)
Liquibase中没有任何东西可以直接支持这一点。最简单的方法可能是使用在某些上下文中运行的前置条件并检查数据库状态中的某些内容,如果它与您对该上下文的预期不匹配则会失败。
对于您的示例,可能是sqlCheck查询是否存在某些QA数据。