public function run()
{
// Increase memory limit
ini_set('memory_limit', '512M');
try {
// Params
$paramsFactory = new ParamsFactory();
$params = $paramsFactory->get();
// Diff
$diffCalculator = new DiffCalculator();
$diff = $diffCalculator->getDiff($params);
// Empty diff
if (empty($diff['schema']) && empty($diff['data'])) {
Logger::info("Identical resources");
} else {
// SQL
$sqlGenerator = new SQLGenerator($diff);
$up = '';
$down = '';
if ($params->include !== 'down') {
$up = $sqlGenerator->getUp();
}
if ($params->include !== 'up') {
$down = $sqlGenerator->getDown();
}
// Generate
$templater = new Templater($params, $up, $down);
$templater->output();
}
Logger::success("Completed");
} catch (\Exception $e) {
if ($e instanceof BaseException) {
Logger::error($e->getMessage(), true);
} else {
Logger::error("Unexpected error: ");
throw $e;
}
}
}