是否可以为变更集的单个元素创建两个前提条件?就像如果更改日志文件在 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>
不可能在条件内创建列。
如果我理解您的问题,那么您有两个(可能更多)选择:
为 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] 删除。
我来说两句