一个 liquibase 变更集中的 2 个先决条件

疯狂的科学家

是否可以为变更集的单个元素创建两个前提条件?就像如果更改日志文件在 SQL Server 数据库中运行则生成一列,如果更改日志文件在 Oracle 数据库中运行则生成另一列。以这样的方式,例如:

<changeSet author="Me" id="1528876614155">
 <createTable tableName="ELECTRICITY_PRODUCTS">

   <preConditions onFail="MARK_RAN" onSqlOutput="TEST">
        <dbms type="mssql" />
        <column autoIncrement="true" name="EP_ID" type="NUMBER">
   </preConditions>
   <preConditions onFail="MARK_RAN" onSqlOutput="TEST">
        <dbms type="oracle" />
        <column autoIncrement="false" name="EP_ID" type="FLOAT">
   </preConditions>
 </createTable>
</changeset>
比拉克

不可能在条件内创建列。

如果我理解您的问题,那么您有两个(可能更多)选择:

  1. 为每个 dbms 分离更改集
  2. 为 dbms 创建属性并使用它们,例如:

    <property dbms="oracle" name="autoincrement" value="true" />
    <property dbms="oracle" name="autoincrementType" value="NUMBER" />
    <property dbms="mssql" name="autoincrement" value="false" />
    <property dbms="mssql" name="autoincrementType" value="FLOAT" />
    
    
    <changeSet id="create_a_table" author="system">
        <createTable tableName="a_table">
            <column name="a_column" autoIncrement="${autoincrement}" type="${autoincrementType}" />
        </createTable>
    </changeSet>
    

我没有测试过,这只是如何解决问题的想法。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

在一条规则中结合2个模式先决条件?

将多个liquibase变更集合并为一个

Liquibase Oracle:生成变更日志尝试从另一个架构创建对象

makefile 通配符先决条件多次获取同一个文件

Makefile 找不到最后一个先决条件对象

在一个变更集中使用tf.exe签入多个文件

在liquibase变更集中xml比sql文件好吗

从Liquibase变更集中获取输出SQL

当先决条件属性在另一个类中更改时,为从属属性提高PropertyChanged?

Makefile:如何为两个文件列表设置先决条件

回滚在 liquibase 变更集中不起作用

如何在LiquiBase变更集中构建WHERE子句

在一个docker映像中使用liquibase的Postgres

将2个查询输出合并到一个结果集中

适用于iCloud的CalDav客户端:MKCOL失败,出现412个先决条件失败

两个项目使用liquibase,如何处理变更日志中的冲突?

如何在Liquibase中的另一个内部使用一个ChangeLog?

2个DB之间的Liquibase差异数据

如何使用Scene2d和LibGDX将演员集中在一个小组中?

如何使用aws wafv2 cli在ip集中添加一个IP?

主张一个要素是集中的

合并LiquiBase变更集

不能让 liquibase 在一个文件中执行 1 个以上的脚本

是否可以在 liquibase 变更集中将表名作为参数传递?

sas:如何在2个数据集中创建一个包含不同变量列表的变量

比较R中一个数据集中2个级别的group_by的平均值

无法从Liquibase Maven插件为两个数据库执行两个变更日志

使用Liquibase将数据库从一个版本迁移到另一个版本

为什么来自TFS事件服务的CheckinEvent SOAP消息仅包含变更集中的前25个文件?