Example #1
0
 /**
  * Compares database
  *
  * @param Database $database
  *
  * @return array
  * @throws \Exception
  */
 public function equals(Database $database)
 {
     $prefix = '';
     $thisTables = $this->getTables();
     $databaseTables = $database->getTables();
     $errors = [];
     foreach ($thisTables as $database) {
         if (array_key_exists($database->getName(), $databaseTables)) {
             $errors = array_merge($errors, $database->equals($databaseTables[$database->getName()], $prefix));
         }
     }
     $thisTableNames = array_keys($thisTables);
     $databaseTableNames = array_keys($databaseTables);
     $diff = array_diff($databaseTableNames, $thisTableNames);
     if (!empty($diff)) {
         $errors[] = $prefix . 'Extra Tables: ' . "\n" . implode("\n", $diff);
     }
     $diff = array_diff($thisTableNames, $databaseTableNames);
     if (!empty($diff)) {
         $errors[] = $prefix . 'Missing Tables: ' . "\n" . implode("\n", $diff);
     }
     return $errors;
 }