Example #1
0
 /**
  * Returns the computed difference between two database objects.
  *
  * @param  Database             $fromDatabase
  * @param  Database             $toDatabase
  * @param  boolean              $caseInsensitive
  * @return DatabaseDiff|Boolean
  */
 public static function computeDiff(Database $fromDatabase, Database $toDatabase, $caseInsensitive = false, $withRenaming = false, $removeTable = true, $excludedTables = [])
 {
     $databaseComparator = new self();
     $databaseComparator->setFromDatabase($fromDatabase);
     $databaseComparator->setToDatabase($toDatabase);
     $databaseComparator->setWithRenaming($withRenaming);
     $databaseComparator->setRemoveTable($removeTable);
     $databaseComparator->setExcludedTables($excludedTables);
     $platform = $toDatabase->getPlatform() ?: $fromDatabase->getPlatform();
     if ($platform) {
         foreach ($fromDatabase->getTables() as $table) {
             $platform->normalizeTable($table);
         }
         foreach ($toDatabase->getTables() as $table) {
             $platform->normalizeTable($table);
         }
     }
     $differences = 0;
     $differences += $databaseComparator->compareTables($caseInsensitive);
     return $differences > 0 ? $databaseComparator->getDatabaseDiff() : false;
 }