protected void checkForIndexChanges(GenericSchemaChanges changes, DbTable sourceTable, DbTable targetTable) {
for(DbIndex targetIndex : targetTable.getIndexes()){
DbIndex sourceIndex = sourceTable.findIndex(targetIndex.getName());
if(null == sourceIndex){
log.debug("Index '{}' needs to be removed from table '{}'",targetIndex.getName(),targetTable.getName());
changes.add(new RemoveIndexChange(targetTable, targetIndex));
}
}
for(DbIndex sourceIndex : sourceTable.getIndexes()){
DbIndex targetIndex = targetTable.findIndex(sourceIndex.getName());
if(null == targetIndex){
log.debug("Index '{}' needs to be added to table '{}'",sourceIndex.getName(),sourceTable.getName());
changes.add(new AddIndexChange(targetTable, sourceIndex));
}else{
checkForIndexDefinitionChange(changes, sourceTable, sourceIndex, targetTable, targetIndex);
}
}
}