aboutsummaryrefslogtreecommitdiffstats
path: root/phpBB/includes
diff options
context:
space:
mode:
Diffstat (limited to 'phpBB/includes')
-rw-r--r--phpBB/includes/extension/manager.php21
1 files changed, 13 insertions, 8 deletions
diff --git a/phpBB/includes/extension/manager.php b/phpBB/includes/extension/manager.php
index 926cc015de..21a9ec1370 100644
--- a/phpBB/includes/extension/manager.php
+++ b/phpBB/includes/extension/manager.php
@@ -522,11 +522,13 @@ class phpbb_extension_manager
protected function handle_migrations($extension_name, $mode)
{
$migrations_path = $this->phpbb_root_path . $this->get_extension_path($extension_name) . 'migrations/';
- if (file_exists($migrations_path) && is_dir($migrations_path))
+ if (!file_exists($migrations_path) || !is_dir($migrations_path))
{
- $this->migrator->load_migrations($migrations_path);
+ return true;
}
+ $migrations = $this->migrator->load_migrations($migrations_path);
+
// What is a safe limit of execution time? Half the max execution time should be safe.
$safe_time_limit = (ini_get('max_execution_time') / 2);
$start_time = time();
@@ -546,14 +548,17 @@ class phpbb_extension_manager
}
else if ($mode == 'purge')
{
- while ($this->migrator->migration_state() !== false)
+ foreach ($migrations as $migration)
{
- $this->migrator->revert();
-
- // Are we approaching the time limit? If so we want to pause the update and continue after refreshing
- if ((time() - $start_time) >= $safe_time_limit)
+ while ($this->migrator->migration_state($migration) !== false)
{
- return false;
+ $this->migrator->revert($migration);
+
+ // Are we approaching the time limit? If so we want to pause the update and continue after refreshing
+ if ((time() - $start_time) >= $safe_time_limit)
+ {
+ return false;
+ }
}
}
}