public function modifyColumn(ColumnSchema $columnSchema, ColumnDataInterface $addedColumnData) { /* @var $tableSchema TableSchema */ $tableSchema = $this->getTableSchema(); $columnIndex = $tableSchema->getColumnIndex($columnSchema->getName()); $originalColumn = $tableSchema->getColumn($columnIndex); if (is_null($columnIndex)) { throw new InvalidArgumentException("Column '{$columnSchema->getName()}' does not exist!"); } $columnSchema->setIndex($originalColumn->getIndex()); $tableSchema->writeColumn($columnIndex, $columnSchema); $oldColumnData = $this->getColumnData($columnIndex); foreach ($oldColumnData as $rowId => $cellData) { $addedColumnData->setCellData($rowId, $cellData); } $this->columnDatas[$columnIndex] = $addedColumnData; }