1
0
mirror of https://github.com/phpbb/phpbb.git synced 2025-07-31 14:00:31 +02:00

[feature/migrations] Reverse data functionality

If data step fails, attempt to roll back any previous calls from the
migration that failed.

Fix some failing tests

PHPBB3-9737
This commit is contained in:
Nathan Guse
2013-01-09 18:24:32 -06:00
parent 28cd253d19
commit 3d4c00619f
8 changed files with 240 additions and 15 deletions

View File

@@ -471,4 +471,35 @@ class phpbb_db_migration_tool_module implements phpbb_db_migration_tool_interfac
$this->cache->destroy("_modules_$class");
}
}
/**
* Reverse an original install action
*
* First argument is the original call to the class (e.g. add, remove)
* After the first argument, send the original arguments to the function in the original call
*
* @return null
*/
public function reverse()
{
$arguments = func_get_args();
$original_call = array_shift($arguments);
$call = false;
switch ($original_call)
{
case 'add':
$call = 'remove';
break;
case 'remove':
$call = 'add';
break;
}
if ($call)
{
return call_user_func_array(array(&$this, $call), $arguments);
}
}
}