protected void alterColumnType(DdlWrite writer, AlterColumn alter) throws IOException { String ddl = platformDdl.alterColumnType(alter.getTableName(), alter.getColumnName(), alter.getType()); if (hasValue(ddl)) { writer.apply().append(ddl).endOfStatement(); if (isTrue(alter.isWithHistory())) { // apply same type change to matching column in the history table ddl = platformDdl.alterColumnType( historyTable(alter.getTableName()), alter.getColumnName(), alter.getType()); writer.apply().append(ddl).endOfStatement(); } } }
/** This is mysql specific - alter all the base attributes of the column together. */ protected void alterColumnBaseAttributes(DdlWrite writer, AlterColumn alter) throws IOException { String ddl = platformDdl.alterColumnBaseAttributes(alter); if (hasValue(ddl)) { writer.apply().append(ddl).endOfStatement(); if (isTrue(alter.isWithHistory()) && alter.getType() != null) { // mysql and sql server column type change allowing nulls in the history table column AlterColumn alterHistoryColumn = new AlterColumn(); alterHistoryColumn.setTableName(historyTable(alter.getTableName())); alterHistoryColumn.setColumnName(alter.getColumnName()); alterHistoryColumn.setType(alter.getType()); String histColumnDdl = platformDdl.alterColumnBaseAttributes(alterHistoryColumn); writer.apply().append(histColumnDdl).endOfStatement(); } } }