Liquibase通过函数创建索引



我在postgresql中有这个数据库,它有这个索引:

CREATE INDEX fav_alias_lower_index ON fav_alias USING hash((LOWER(fav_alias)));

当我对这个数据库进行逆向工程时,我得到了这个liquibase变更日志:

<changeSet author="jmartins (generated)" id="1410448831080-17">
   <createIndex indexName="workspace_favorite_alias_lower_case_index" tableName="workspace_favorite_alias" unique="false">
      <column name="lower((fava_alias)::text)"/>
   </createIndex>
</changeSet>

当我在PostgreSql数据库上应用更新时,这很好,但是,例如,它在MySql上不起作用。因此,我的问题是,如何使这种索引创建也适用于MySql、MSSQL和Oracle,同时保留fava_alias的小写字母?

感谢

如果该函数在数据库中可用,则可以在liquibase中使用它。有一种方法可以使用dbms属性来区分不同的数据库。

<changeSet author="jmartins (generated)" id="1410448831080-17">
   <createIndex indexName="workspace_favorite_alias_lower_case_index" tableName="workspace_favorite_alias" unique="false" dbms="postgresql">
      <column name="lower((fava_alias)::text)"/>
   </createIndex>
</changeSet>
<changeSet author="jmartins (generated)" id="1410448831080-17">
   <createIndex indexName="workspace_favorite_alias_lower_case_index" tableName="workspace_favorite_alias" unique="false" dbms="oracle">
      <column name="lower(fava_alias)"/>
   </createIndex>
</changeSet>

相关内容

  • 没有找到相关文章

最新更新