public function getMigrationConfig(InputInterface $input, OutputWriter $outputWriter)
{
/**
* If a configuration option is passed to the command line, use that configuration
* instead of any other one.
*/
if ($input->getOption('configuration')) {
$outputWriter->write("Loading configuration from command option: " . $input->getOption('configuration'));
return $this->loadConfig($input->getOption('configuration'), $outputWriter);
}
/**
* If a configuration has already been set using DI or a Setter use it.
*/
if ($this->configuration) {
$outputWriter->write("Loading configuration from the integration code of your framework (setter).");
return $this->configuration;
}
/**
* If no any other config has been found, look for default config file in the path.
*/
$defaultConfig = ['migrations.xml', 'migrations.yml', 'migrations.yaml', 'migrations.json', 'migrations.php'];
foreach ($defaultConfig as $config) {
if ($this->configExists($config)) {
$outputWriter->write("Loading configuration from file: {$config}");
return $this->loadConfig($config, $outputWriter);
}
}
return new Configuration($this->connection, $outputWriter);
}