mirror of
https://github.com/flarum/framework.git
synced 2024-11-29 21:11:55 +08:00
Add extension rollback command
This commit is contained in:
parent
c3d034d2fa
commit
d47aed59c6
|
@ -14,6 +14,7 @@ namespace Flarum\Console;
|
|||
use Flarum\Console\Event\Configuring;
|
||||
use Flarum\Database\Console\GenerateMigrationCommand;
|
||||
use Flarum\Database\Console\MigrateCommand;
|
||||
use Flarum\Database\Console\RollbackCommand;
|
||||
use Flarum\Foundation\Application;
|
||||
use Flarum\Foundation\Console\CacheClearCommand;
|
||||
use Flarum\Foundation\Console\InfoCommand;
|
||||
|
@ -58,6 +59,7 @@ class Server
|
|||
$commands = [
|
||||
InstallCommand::class,
|
||||
MigrateCommand::class,
|
||||
RollbackCommand::class,
|
||||
GenerateMigrationCommand::class,
|
||||
];
|
||||
|
||||
|
|
74
framework/core/src/Database/Console/RollbackCommand.php
Normal file
74
framework/core/src/Database/Console/RollbackCommand.php
Normal file
|
@ -0,0 +1,74 @@
|
|||
<?php
|
||||
|
||||
/*
|
||||
* This file is part of Flarum.
|
||||
*
|
||||
* (c) Toby Zerner <toby.zerner@gmail.com>
|
||||
*
|
||||
* For the full copyright and license information, please view the LICENSE
|
||||
* file that was distributed with this source code.
|
||||
*/
|
||||
|
||||
namespace Flarum\Database\Console;
|
||||
|
||||
use Flarum\Console\AbstractCommand;
|
||||
use Flarum\Extension\ExtensionManager;
|
||||
use Symfony\Component\Console\Input\InputArgument;
|
||||
|
||||
class RollbackCommand extends AbstractCommand
|
||||
{
|
||||
/**
|
||||
* @var ExtensionManager
|
||||
*/
|
||||
protected $manager;
|
||||
|
||||
/**
|
||||
* @param ExtensionManager $manager
|
||||
*/
|
||||
public function __construct(ExtensionManager $manager)
|
||||
{
|
||||
$this->manager = $manager;
|
||||
|
||||
parent::__construct();
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
protected function configure()
|
||||
{
|
||||
$this
|
||||
->setName('migrate:rollback')
|
||||
->setDescription('Run rollback migrations for an extension')
|
||||
->addArgument(
|
||||
'extension',
|
||||
InputArgument::REQUIRED,
|
||||
'The name of the extension.'
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
protected function fire()
|
||||
{
|
||||
$extensionName = $this->input->getArgument('extension');
|
||||
$extension = $this->manager->getExtension($extensionName);
|
||||
|
||||
if (!$extension) {
|
||||
$this->info('Could not find extension ' . $extensionName);
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
$this->info('Rolling back extension: ' . $extensionName);
|
||||
|
||||
$notes = $this->manager->migrateDown($extension);
|
||||
|
||||
foreach ($notes as $note) {
|
||||
$this->info($note);
|
||||
}
|
||||
|
||||
$this->info('DONE.');
|
||||
}
|
||||
}
|
|
@ -247,10 +247,11 @@ class ExtensionManager
|
|||
* Runs the database migrations to reset the database to its old state.
|
||||
*
|
||||
* @param Extension $extension
|
||||
* @return array Notes from the migrator.
|
||||
*/
|
||||
public function migrateDown(Extension $extension)
|
||||
{
|
||||
$this->migrate($extension, false);
|
||||
return $this->migrate($extension, false);
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
Loading…
Reference in New Issue
Block a user