예제 #1
0
 /**
  * Compares two sets of metadata of table columns and returns a set of metadata of table columns that are in the first
  * sets of metadata of table columns but not in the second sets of metadata of table columns.
  *
  * @param TableColumnsMetadata $columns1 The first sets of metadata of table columns.
  * @param TableColumnsMetadata $columns2 The second sets of metadata of table columns.
  *
  * @return TableColumnsMetadata
  */
 public static function notInOtherSet($columns1, $columns2)
 {
     $diff = new TableColumnsMetadata();
     foreach ($columns1->columns as $column_name => $column1) {
         if (!isset($columns2->columns[$column_name])) {
             $diff->appendTableColumn($column1);
         }
     }
     return $diff;
 }
예제 #2
0
 /**
  * Returns metadata of new table columns that can be used in a 'alter table .. add column' statement.
  *
  * @param TableColumnsMetadata $newColumns The metadata new table columns.
  *
  * @return TableColumnsMetadata
  */
 private function alterNewColumns($newColumns)
 {
     $alterNewColumns = new TableColumnsMetadata();
     foreach ($newColumns->getColumns() as $newColumn) {
         $properties = $newColumn->getProperties();
         $properties['after'] = $this->dataTableColumnsDatabase->getPreviousColumn($properties['column_name']);
         $alterNewColumns->appendTableColumn(new AlterColumnMetadata($properties));
     }
     return $alterNewColumns;
 }