protected void checkForColumnChanges(GenericSchemaChanges changes, DbTable sourceTable, DbTable targetTable){
for(DbColumn targetColumn : targetTable.getColumns()){
DbColumn sourceColumn = sourceTable.findColumn(targetColumn.getName());
if(null == sourceColumn){
log.debug("Column '{}' needs to be removed from table '{}'",targetColumn.getName(),targetTable.getName());
changes.add(new RemoveColumnChange(targetTable, targetColumn));
}
}
for(DbColumn sourceColumn : sourceTable.getColumns()){
DbColumn targetColumn = targetTable.findColumn(sourceColumn.getName());
if(null == targetColumn){
log.debug("Column '{}' needs to be added to table '{}'",sourceColumn.getName(),sourceTable.getName());
changes.add(new AddColumnChange(targetTable, sourceColumn));
}else{
checkForColumnDefinitionChanges(changes, sourceTable, sourceColumn, targetTable, targetColumn);
}
}
}