Example #1
0
 /**
  * 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;
 }