mirror of
https://github.com/flarum/framework.git
synced 2024-12-02 06:53:47 +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\Console\Event\Configuring;
|
||||||
use Flarum\Database\Console\GenerateMigrationCommand;
|
use Flarum\Database\Console\GenerateMigrationCommand;
|
||||||
use Flarum\Database\Console\MigrateCommand;
|
use Flarum\Database\Console\MigrateCommand;
|
||||||
|
use Flarum\Database\Console\RollbackCommand;
|
||||||
use Flarum\Foundation\Application;
|
use Flarum\Foundation\Application;
|
||||||
use Flarum\Foundation\Console\CacheClearCommand;
|
use Flarum\Foundation\Console\CacheClearCommand;
|
||||||
use Flarum\Foundation\Console\InfoCommand;
|
use Flarum\Foundation\Console\InfoCommand;
|
||||||
|
@ -58,6 +59,7 @@ class Server
|
||||||
$commands = [
|
$commands = [
|
||||||
InstallCommand::class,
|
InstallCommand::class,
|
||||||
MigrateCommand::class,
|
MigrateCommand::class,
|
||||||
|
RollbackCommand::class,
|
||||||
GenerateMigrationCommand::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.
|
* Runs the database migrations to reset the database to its old state.
|
||||||
*
|
*
|
||||||
* @param Extension $extension
|
* @param Extension $extension
|
||||||
|
* @return array Notes from the migrator.
|
||||||
*/
|
*/
|
||||||
public function migrateDown(Extension $extension)
|
public function migrateDown(Extension $extension)
|
||||||
{
|
{
|
||||||
$this->migrate($extension, false);
|
return $this->migrate($extension, false);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
Loading…
Reference in New Issue
Block a user