ruckusing-migrations icon indicating copy to clipboard operation
ruckusing-migrations copied to clipboard

No progress indication if a migration is slow

Open RichardBradley opened this issue 11 years ago • 5 comments

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)

RichardBradley avatar Jul 02 '13 14:07 RichardBradley

I would be checking this sometimes later this week but as usual a pull request is always welcomed. Thanks

salimane avatar Jul 02 '13 14:07 salimane

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..

ruckus avatar Jul 09 '13 17:07 ruckus

Is there a specific reason to why the output needs to be accumulated? Why not output everything from there?

marcofognog avatar Jan 21 '14 22:01 marcofognog

@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

timtonk avatar Jan 23 '14 00:01 timtonk

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.

kevcam4891 avatar Jan 23 '14 00:01 kevcam4891