/** * {@inheritdoc} */ public function getModifyTableDDL(TableDiff $tableDiff) { $changedNotEditableThroughDirectDDL = $this->tableAlteringWorkaround && (false || $tableDiff->hasModifiedFks() || $tableDiff->hasModifiedIndices() || $tableDiff->hasModifiedColumns() || $tableDiff->hasRenamedColumns() || $tableDiff->hasRemovedFks() || $tableDiff->hasRemovedIndices() || $tableDiff->hasRemovedColumns() || $tableDiff->hasAddedIndices() || $tableDiff->hasAddedFks() || $tableDiff->hasAddedPkColumns()); if ($this->tableAlteringWorkaround && !$changedNotEditableThroughDirectDDL && $tableDiff->hasAddedColumns()) { $addedCols = $tableDiff->getAddedColumns(); foreach ($addedCols as $column) { $sqlChangeNotSupported = false || $column->isPrimaryKey() || $column->isUnique() || false !== array_search($column->getDefaultValue(), array('CURRENT_TIME', 'CURRENT_DATE', 'CURRENT_TIMESTAMP')) || substr(trim($column->getDefaultValue()), 0, 1) == '(' || $column->isNotNull() && $column->getDefaultValue() == 'NULL'; if ($sqlChangeNotSupported) { $changedNotEditableThroughDirectDDL = true; break; } } } if ($changedNotEditableThroughDirectDDL) { return $this->getMigrationTableDDL($tableDiff); } return parent::getModifyTableDDL($tableDiff); }