/** * Compute and return the difference between two database objects * * @param Database $fromDatabase * @param Database $toDatabase * @param boolean $caseInsensitive Whether the comparison is case insensitive. * False by default. * * @return DatabaseDiff|boolean return false if the two databases are similar */ public static function computeDiff(Database $fromDatabase, Database $toDatabase, $caseInsensitive = false) { $dc = new self(); $dc->setFromDatabase($fromDatabase); $dc->setToDatabase($toDatabase); $differences = 0; $differences += $dc->compareTables($caseInsensitive); return $differences > 0 ? $dc->getDatabaseDiff() : false; }
/** * 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; }