migrations
migrations copied to clipboard
[Feature] Display the migration output from the base Doctrine migrator.
Detailed Description
Currently only the migration notes are displayed. But any other output from the base doctrine migrator won't be written to console.
Context
It would be nice to see the extra output from doctrine. I made a quick, dirty solution to show the difference.
Current behavior:
With doctrine output:
Possible Implementation
Doctrine's \Doctrine\DBAL\Migrations\Configuration\Configuration
class has an outputWriter property. The property must be an instance of \Doctrine\DBAL\Migrations\OutputWriter
. Here is my dirty workaround.
I set the output writer after retrieving the configuration from the provider.
https://github.com/laravel-doctrine/migrations/blob/f1292c3dcb894bf5d310775e4bb1d9bd9e74d658/src/Console/MigrateCommand.php#L49-L53
$configuration->setOutputWriter(new OutputWriter(function($message){
// Get the current command's output handler.
$output = $this->getOutput();
// Verify the handler exists and that we want extra output.
if($output && $output->isVerbose()){
// Write the output to a new line.
$output->write($message,true);
}
}));
I don't know how to get an Artisan command's output handler from the ConfigurationFactory. The only way I know how is to get it from the command itself.
Edit
The command could also pass it's output handler to the ConfigurationProvider::getForConnection()
method.
Sorry for the late reply. Happy to accept a PR for it.
This might be something for us to handle when updating to doctrine/migrations 2.x.