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 | |
| 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
| -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)  			{  | 
