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

是否始终运行具有failonerror=“false”的Liquibase变更集?

赵飞雨
2023-03-14

我试图在liquibase中执行以下changeset,它应该创建一个索引。如果索引不存在,则它应该静默地失败:

<changeSet failOnError="false" author="sys" id="1">
    <createIndex unique="true"  indexName="key1" tableName="Table1">
        <column name="name" />
    </createIndex>
</changeSet>

共有1个答案

阎晔
2023-03-14

在Nathen Voxland给出的答案中,他推荐了一种更正确的方法,即在运行变更集之前使用前置条件检查数据库的状态。

在我看来,忽视一次失败是个坏主意....表示您没有完全控制数据库配置....“failonerror”参数允许liquibase继续。如果一个构建记录一个已执行的changset,因为发生了一个错误,那么这不是一个坏主意吗?

 类似资料:
  • 我还将liquibase-oracle-3.3-snapshot.jar添加到liquibase.properties文件中的类路径中,但这没有用。在带有特定Oracle插件标记的DATABASECHANGELOG表中跟踪的每个变更集都具有相同的校验和(7:D41D8CD98F00B204E9800998ECF8427E),并在Description中报告为“空”。 知道吗?

  • 我试图在liquibase中执行以下变更集,它应该创建一个索引。如果索引不存在,它应该自动失败: 到目前为止,一切顺利。问题是,这个变更集没有记录到DATABASECHANGELOG表中,因此每次运行liquibase时都会执行。根据liquibase文档,例如Nathen Voxland的回答,我认为变更集应该在DATABASECHANGELOG表中标记为ran。相反,它根本不会被记录,正如我之

  • 问题内容: 我们有几个数据模式,我们研究了向Liquibase的迁移。(其中一种数据模式已经迁移到Liquibase)。 对我们来说重要的问题是Liquibase是否支持空运行: 我们需要在所有架构上运行数据库更改而无需提交,以确保我们没有问题。 如果成功,则所有数据库更改都将再次通过提交运行。 答案后添加 我阅读了有关updateSQL的文档,但它不能满足“快速运行”的要求。它只是生成SQL(在

  • 编辑的 Laravel版本:5.2.45 PHP版本:5.6 数据库驱动程序 你好 我完成了从laravel 5.1到5.2的更新,并解决了一些问题... 现在我尝试登录,但认证验证密码字段的密码,但在我的数据库密码有另一个名称是senha。 照亮/Auth/EloquentUserProvider.php 您可以看到,函数试图在凭据中找到字符串密码,而它应该是senha 同样的问题与valida

  • 问题内容: 士兵级 子弹班 我在碰撞检测方面遇到了麻烦。我已经尝试过Rect.intersects,r.intersect(r1),r.contains(r1),并且始终为false。我什至绘制矩形以确保正确绘制并且正确绘制,但是碰撞始终为假 问题答案: