Code Coverage |
||||||||||
Classes and Traits |
Functions and Methods |
Lines |
||||||||
Total | |
0.00% |
0 / 1 |
|
0.00% |
0 / 2 |
CRAP | |
0.00% |
0 / 42 |
revert | |
0.00% |
0 / 1 |
|
0.00% |
0 / 2 |
42.00 | |
0.00% |
0 / 42 |
configure | |
0.00% |
0 / 1 |
2.00 | |
0.00% |
0 / 11 |
|||
execute | |
0.00% |
0 / 1 |
30.00 | |
0.00% |
0 / 31 |
<?php | |
/** | |
* | |
* This file is part of the phpBB Forum Software package. | |
* | |
* @copyright (c) phpBB Limited <https://www.phpbb.com> | |
* @license GNU General Public License, version 2 (GPL-2.0) | |
* | |
* For full copyright and license information, please see | |
* the docs/CREDITS.txt file. | |
* | |
*/ | |
namespace phpbb\console\command\db; | |
use phpbb\db\output_handler\log_wrapper_migrator_output_handler; | |
use Symfony\Component\Console\Input\InputArgument; | |
use Symfony\Component\Console\Input\InputInterface; | |
use Symfony\Component\Console\Output\OutputInterface; | |
use Symfony\Component\Console\Style\SymfonyStyle; | |
class revert extends \phpbb\console\command\db\migrate | |
{ | |
protected function configure() | |
{ | |
$this | |
->setName('db:revert') | |
->setDescription($this->language->lang('CLI_DESCRIPTION_DB_REVERT')) | |
->addArgument( | |
'name', | |
InputArgument::REQUIRED, | |
$this->language->lang('CLI_MIGRATION_NAME') | |
) | |
; | |
} | |
protected function execute(InputInterface $input, OutputInterface $output) | |
{ | |
$io = new SymfonyStyle($input, $output); | |
$name = str_replace('/', '\\', $input->getArgument('name')); | |
$this->migrator->set_output_handler(new log_wrapper_migrator_output_handler($this->language, new console_migrator_output_handler($this->user, $output), $this->phpbb_root_path . 'store/migrations_' . time() . '.log', $this->filesystem)); | |
$this->cache->purge(); | |
if (!in_array($name, $this->load_migrations())) | |
{ | |
$io->error($this->language->lang('MIGRATION_NOT_VALID', $name)); | |
return 1; | |
} | |
else if ($this->migrator->migration_state($name) === false) | |
{ | |
$io->error($this->language->lang('MIGRATION_NOT_INSTALLED', $name)); | |
return 1; | |
} | |
try | |
{ | |
while ($this->migrator->migration_state($name) !== false) | |
{ | |
$this->migrator->revert($name); | |
} | |
} | |
catch (\phpbb\db\migration\exception $e) | |
{ | |
$io->error($e->getLocalisedMessage($this->user)); | |
$this->finalise_update(); | |
return 1; | |
} | |
$this->finalise_update(); | |
$io->success($this->language->lang('INLINE_UPDATE_SUCCESSFUL')); | |
} | |
} |