diff options
author | Oliver Schramm <oliver.schramm97@gmail.com> | 2016-08-12 03:45:56 +0200 |
---|---|---|
committer | Oliver Schramm <oliver.schramm97@gmail.com> | 2016-08-12 15:23:27 +0200 |
commit | 758fe20f4be7178fd4b9fd6ce48c5342cfcbce27 (patch) | |
tree | dce8ad8a5dc05069ee1df7b5c08987129361d18e /phpBB/phpbb | |
parent | 0d1b7b3935bb432b4922537bc77ed9a189aceb34 (diff) | |
download | forums-758fe20f4be7178fd4b9fd6ce48c5342cfcbce27.tar forums-758fe20f4be7178fd4b9fd6ce48c5342cfcbce27.tar.gz forums-758fe20f4be7178fd4b9fd6ce48c5342cfcbce27.tar.bz2 forums-758fe20f4be7178fd4b9fd6ce48c5342cfcbce27.tar.xz forums-758fe20f4be7178fd4b9fd6ce48c5342cfcbce27.zip |
[ticket/14742] Further improve progress bar in db updater
PHPBB3-14742
Diffstat (limited to 'phpBB/phpbb')
-rw-r--r-- | phpBB/phpbb/install/module/update_database/task/update.php | 24 |
1 files changed, 15 insertions, 9 deletions
diff --git a/phpBB/phpbb/install/module/update_database/task/update.php b/phpBB/phpbb/install/module/update_database/task/update.php index d167181125..c69dafaa10 100644 --- a/phpBB/phpbb/install/module/update_database/task/update.php +++ b/phpBB/phpbb/install/module/update_database/task/update.php @@ -141,16 +141,17 @@ class update extends task_base $this->migrator->set_migrations($migrations); - $migration_count = $this->installer_config->get('database_update_migrations', -1); - if ($migration_count < 0) + $migration_step_count = $this->installer_config->get('database_update_migration_steps', -1); + if ($migration_step_count < 0) { - $migration_count = count($this->migrator->get_installable_migrations()); - $this->installer_config->set('database_update_migrations', $migration_count); + $migration_step_count = count($this->migrator->get_installable_migrations()) * 2; + $this->installer_config->set('database_update_migration_steps', $migration_step_count); } - $this->iohandler->set_task_count($migration_count, true); - $this->installer_config->set_task_progress_count($migration_count); $progress_count = $this->installer_config->get('database_update_count', 0); + $restart_progress_bar = ($progress_count === 0); // Only "restart" when the update runs for the first time + $this->iohandler->set_task_count($migration_step_count, $restart_progress_bar); + $this->installer_config->set_task_progress_count($migration_step_count); while (!$this->migrator->finished()) { @@ -159,12 +160,17 @@ class update extends task_base $this->migrator->update(); $last_run_migration = $this->migrator->get_last_run_migration(); - - if ($last_run_migration['state']['migration_data_done']) + if (isset($last_run_migration['effectively_installed']) && $last_run_migration['effectively_installed']) + { + $progress_count += 2; + } + else if (($last_run_migration['task'] === 'process_schema_step' && $last_run_migration['state']['migration_schema_done']) || + ($last_run_migration['task'] === 'process_data_step' && $last_run_migration['state']['migration_data_done'])) { $progress_count++; - $this->iohandler->set_progress('STAGE_UPDATE_DATABASE', $progress_count); } + + $this->iohandler->set_progress('STAGE_UPDATE_DATABASE', $progress_count); } catch (exception $e) { |