mysql - Liquibase格式化的sql前提条件tableExists

标签 mysql migration liquibase preconditions

基于 Liquibase xml 的变更集 block :

<preConditions>
  <not>
    <tableExists tableName="alarm" schemaName="public"/>
  </not>
</preConditions>

它在“liquibase formatted sql”中应该是怎样的? Liquibase的官方文档仅给出基于xml的

最佳答案

使用这个:

--preconditions onFail:HALT onError:HALT
--precondition-sql-check expectedResult:0 SELECT count(*) FROM information_schema.tables where table_name = 'alarm';

expectedResult 是 liquibase 中的一个字符串,评估将进行字符串比较。因此,无论您的 sql 返回什么,都需要完全匹配(包括区分大小写)。

您还可以查看单元测试类FormattedSqlChangeLogParserTest获取更多示例。

关于mysql - Liquibase格式化的sql前提条件tableExists,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51277777/

相关文章:

mysql - 根据连续出现对数据进行分组和计数

database - Luminus 数据库访问

hibernate - Liquibase:使用 H2 数据库的 modifyDataType 重构将 INT 自动增量列更改为 BIGINT

液碱 : checksum changed and I don't know why

mysql - liquibase 数据库从头开始构建

php - 无法更新行,只能插入到我的 MySQL 表中。语法错误 "WHERE ID =0"

mysql - 尝试使用子查询从另一个表中获取行数

ruby-on-rails - "flatten"Rails 迁移的方法?

php - 如何更新 Laravel 中表内列的数据类型?

php - MySQL 搜索 double 货币格式