ruckusing-migrations
ruckusing-migrations copied to clipboard
No progress indication if a migration is slow
ruckus.php
does not currently print any output until all migrations have finished.
If one or more migrations take a very long time, then this can be disconcerting. It is not clear whether ruckus.php
has started or not.
It would be better if a "starting migration x" message were printed before each migration started.
(Tested on version d8b1e737
(current master
) on Windows with PHP 5.4.13 + Cygwin shell)
I would be checking this sometimes later this week but as usual a pull request is always welcomed. Thanks
Hmm, this is trickier than one would expect. Just shoving a printf
right above the actual meat of the Migrate#run_migrations
:
// OUTPUT here
printf("========= Begin: %s ======== \n", $file['class']);
$this->_adapter->start_transaction();
$result = $obj->$target_method();
//successfully ran migration, update our version and commit
$this->_migrator_util->resolve_current_version($file['version'], $target_method);
$this->_adapter->commit_transaction();
Functionally works but the display is out of order - since the Task accumulates all output in $this->_return
and then displays it at the end.
E.g.
========= Begin: CreaetFoo ========
Started: 2013-07-09 10:35am PDT
[db:migrate]:
Migrating UP to: 20130705164951
========= Completed: CreaetFoo ======== (0.00)
Finished: 2013-07-09 10:35am PDT
Ideally we would want the ========= Begin: CreaetFoo ========
output inside the [db:migrate]
block..
Is there a specific reason to why the output needs to be accumulated? Why not output everything from there?
@marcofognog maybe it's just a question of design. Instead of printing in every instance of migration there is a one method in RuckusFramework, which output everything
In instances where I anticipate slow queries, or major migrations, but
still want to know things are happening, I will typically fallback to
viewing tail -f
of a mysql general query log. Granted, enabling the
general log will slow the process further, but sometimes I take comfort
in seeing SQL whiz through the terminal screen :)
http://dev.mysql.com/doc/refman/5.1/en/query-log.html
Dmitry Tonkonogov wrote:
@marcofognog https://github.com/marcofognog maybe it's just a question of design. Instead of printing in every instance of migration there is a one method in RuckusFramework, which output everything
— Reply to this email directly or view it on GitHub https://github.com/ruckus/ruckusing-migrations/issues/107#issuecomment-33085314.