diff options
Diffstat (limited to 'phpBB/phpbb/install')
| -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)  			{ | 
