/** * Compares tables. * * @param Schema $source Source schema. * @param Schema $target Target schema. * * @return void */ private function compareTables(Schema $source, Schema $target) { foreach ($source->tables->compare($target->tables, false) as $pair) { if (isset($pair[0]) && isset($pair[1])) { $this->compareTable($pair[0], $pair[1]); } elseif (!isset($pair[0]) && isset($pair[1])) { $this->difference[] = $pair; $emptyCollection = new Collection(); foreach ($emptyCollection->compare($pair[1]->indexes) as $pair2) { $this->difference[] = $pair2; } $emptyCollection = new Collection(); foreach ($emptyCollection->compare($pair[1]->triggers) as $pair2) { $this->difference[] = $pair2; } } else { $this->difference[] = $pair; } } }