ResetCommand.php
TLDR
This file is a part of the Illuminate\Database\Console\Migrations
namespace and contains the ResetCommand
class. The ResetCommand
class is a command line tool that is used to rollback all database migrations.
Methods
handle
This method is responsible for executing the console command. It starts by confirming if the user wants to proceed with the operation. If the user confirms, it proceeds by checking if the migration table exists. If the migration table does not exist, it displays a warning message. Finally, it resets the migrations by calling the reset
method on the migrator instance.
Classes
ResetCommand
The ResetCommand
class extends the BaseCommand
class and is used as a command line tool to rollback all database migrations. It has the following properties:
-
$name
: The name of the console command (migrate:reset
). -
$description
: The description of the console command (Rollback all database migrations
). -
$migrator
: An instance of theMigrator
class.
The ResetCommand
class has the following methods:
-
__construct
: The constructor method which initializes the$migrator
property. -
handle
: The method that is executed when the console command is run. -
getOptions
: A method that returns an array of console command options.
<?php
namespace Illuminate\Database\Console\Migrations;
use Illuminate\Console\ConfirmableTrait;
use Illuminate\Database\Migrations\Migrator;
use Symfony\Component\Console\Input\InputOption;
class ResetCommand extends BaseCommand
{
use ConfirmableTrait;
/**
* The console command name.
*
* @var string
*/
protected $name = 'migrate:reset';
/**
* The console command description.
*
* @var string
*/
protected $description = 'Rollback all database migrations';
/**
* The migrator instance.
*
* @var \Illuminate\Database\Migrations\Migrator
*/
protected $migrator;
/**
* Create a new migration rollback command instance.
*
* @param \Illuminate\Database\Migrations\Migrator $migrator
* @return void
*/
public function __construct(Migrator $migrator)
{
parent::__construct();
$this->migrator = $migrator;
}
/**
* Execute the console command.
*
* @return int
*/
public function handle()
{
if (! $this->confirmToProceed()) {
return 1;
}
return $this->migrator->usingConnection($this->option('database'), function () {
// First, we'll make sure that the migration table actually exists before we
// start trying to rollback and re-run all of the migrations. If it's not
// present we'll just bail out with an info message for the developers.
if (! $this->migrator->repositoryExists()) {
return $this->components->warn('Migration table not found.');
}
$this->migrator->setOutput($this->output)->reset(
$this->getMigrationPaths(), $this->option('pretend')
);
});
}
/**
* Get the console command options.
*
* @return array
*/
protected function getOptions()
{
return [
['database', null, InputOption::VALUE_OPTIONAL, 'The database connection to use'],
['force', null, InputOption::VALUE_NONE, 'Force the operation to run when in production'],
['path', null, InputOption::VALUE_OPTIONAL | InputOption::VALUE_IS_ARRAY, 'The path(s) to the migrations files to be executed'],
['realpath', null, InputOption::VALUE_NONE, 'Indicate any provided migration file paths are pre-resolved absolute paths'],
['pretend', null, InputOption::VALUE_NONE, 'Dump the SQL queries that would be run'],
];
}
}