/** * Get the reverse diff for this diff * * @return TableDiff */ public function getReverseDiff() { $diff = new self(); // tables $diff->setFromTable($this->getToTable()); $diff->setToTable($this->getFromTable()); // columns $diff->setAddedColumns($this->getRemovedColumns()); $diff->setRemovedColumns($this->getAddedColumns()); $renamedColumns = array(); foreach ($this->getRenamedColumns() as $columnRenaming) { $renamedColumns[] = array_reverse($columnRenaming); } $diff->setRenamedColumns($renamedColumns); $columnDiffs = array(); foreach ($this->getModifiedColumns() as $name => $columnDiff) { $columnDiffs[$name] = $columnDiff->getReverseDiff(); } $diff->setModifiedColumns($columnDiffs); // pks $diff->setAddedPkColumns($this->getRemovedPkColumns()); $diff->setRemovedPkColumns($this->getAddedPkColumns()); $renamedPkColumns = array(); foreach ($this->getRenamedPkColumns() as $columnRenaming) { $renamedPkColumns[] = array_reverse($columnRenaming); } $diff->setRenamedPkColumns($renamedPkColumns); // indices $diff->setAddedIndices($this->getRemovedIndices()); $diff->setRemovedIndices($this->getAddedIndices()); $indexDiffs = array(); foreach ($this->getModifiedIndices() as $name => $indexDiff) { $indexDiffs[$name] = array_reverse($indexDiff); } $diff->setModifiedIndices($indexDiffs); // fks $diff->setAddedFks($this->getRemovedFks()); $diff->setRemovedFks($this->getAddedFks()); $fkDiffs = array(); foreach ($this->getModifiedFks() as $name => $fkDiff) { $fkDiffs[$name] = array_reverse($fkDiff); } $diff->setModifiedFks($fkDiffs); return $diff; }
/** * Returns the reverse diff for this diff. * * @return TableDiff */ public function getReverseDiff() { $diff = new self(); // tables $diff->setFromTable($this->toTable); $diff->setToTable($this->fromTable); // columns if ($this->hasAddedColumns()) { $diff->setRemovedColumns($this->addedColumns); } if ($this->hasRemovedColumns()) { $diff->setAddedColumns($this->removedColumns); } if ($this->hasRenamedColumns()) { $renamedColumns = []; foreach ($this->renamedColumns as $columnRenaming) { $renamedColumns[] = array_reverse($columnRenaming); } $diff->setRenamedColumns($renamedColumns); } if ($this->hasModifiedColumns()) { $columnDiffs = []; foreach ($this->modifiedColumns as $name => $columnDiff) { $columnDiffs[$name] = $columnDiff->getReverseDiff(); } $diff->setModifiedColumns($columnDiffs); } // pks if ($this->hasRemovedPkColumns()) { $diff->setAddedPkColumns($this->removedPkColumns); } if ($this->hasAddedPkColumns()) { $diff->setRemovedPkColumns($this->addedPkColumns); } if ($this->hasRenamedPkColumns()) { $renamedPkColumns = []; foreach ($this->renamedPkColumns as $columnRenaming) { $renamedPkColumns[] = array_reverse($columnRenaming); } $diff->setRenamedPkColumns($renamedPkColumns); } // indices if ($this->hasRemovedIndices()) { $diff->setAddedIndices($this->removedIndices); } if ($this->hasAddedIndices()) { $diff->setRemovedIndices($this->addedIndices); } if ($this->hasModifiedIndices()) { $indexDiffs = []; foreach ($this->modifiedIndices as $name => $indexDiff) { $indexDiffs[$name] = array_reverse($indexDiff); } $diff->setModifiedIndices($indexDiffs); } // fks if ($this->hasAddedFks()) { $diff->setRemovedFks($this->addedFks); } if ($this->hasRemovedFks()) { $diff->setAddedFks($this->removedFks); } if ($this->hasModifiedFks()) { $fkDiffs = []; foreach ($this->modifiedFks as $name => $fkDiff) { $fkDiffs[$name] = array_reverse($fkDiff); } $diff->setModifiedFks($fkDiffs); } return $diff; }