我在postgresql中有这个数据库,它有这个索引:
CREATE INDEX fav_alias_lower_index ON fav_alias USING hash((LOWER(fav_alias)));
当我逆转设计这个数据库时,我得到了这个liquibase changelog:
<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的小写?
由于
答案 0 :(得分:3)
如果您的数据库中有该功能,您可以在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>