protected function runDown($file, $migration, $pretend = false)
    {
        // First we will get the file name of the migration so we can resolve out an
        // instance of the migration. Once we get an instance we can either run a
        // pretend execution of the migration or we can run the real migration.
        $instance = $this->resolve(
            $name = $this->getMigrationName($file)
        );

        if ($pretend) {
            $this->pretendToRun($name, $instance, 'down');

            return;
        }

        $this->note(Decorate::notice('Rolling back:') . " {$name}");

        $this->runMigration($instance, 'down');

        // Once we have successfully run the migration "down" we will remove it from
        // the migration repository so it will be considered to have not been run
        // by the application then will be able to fire by any later operation.
        $this->storage->delete($migration->migration);

        $this->note(Decorate::info('Rolled back:') . " {$name}");
    }
protected function runDown($file, $migration, $pretend = false)
    {
        // First we will get the file name of the migration so we can resolve out an
        // instance of the migration. Once we get an instance we can either run a
        // pretend execution of the migration or we can run the real migration.
        $instance = $this->resolve(
            $name = $this->getMigrationName($file)
        );

        if ($pretend) {
            $this->pretendToRun($name, $instance, 'down');

            return;
        }

        $this->note(Decorate::notice('Rolling back:') . " {$name}");

        $this->runMigration($instance, 'down');

        // Once we have successfully run the migration "down" we will remove it from
        // the migration repository so it will be considered to have not been run
        // by the application then will be able to fire by any later operation.
        $this->storage->delete($migration->migration);

        $this->note(Decorate::info('Rolled back:') . " {$name}");
    }
protected function runDown ( $ file , $ migration , $ pretend = false ) { // First we will get the file name of the migration so we can resolve out an // instance of the migration. Once we get an instance we can either run a // pretend execution of the migration or we can run the real migration. $ instance = $ this -> resolve ( $ name = $ this -> getMigrationName ( $ file ) ) ; if ( $ pretend ) { $ this -> pretendToRun ( $ name , $ instance , 'down' ) ; return ; } $ this -> note ( Decorate :: notice ( 'Rolling back:' ) . " {$name}" ) ; $ this -> runMigration ( $ instance , 'down' ) ; // Once we have successfully run the migration "down" we will remove it from // the migration repository so it will be considered to have not been run // by the application then will be able to fire by any later operation. $ this -> storage -> delete ( $ migration -> migration ) ; $ this -> note ( Decorate :: info ( 'Rolled back:' ) . " {$name}" ) ; }
Run "down" a migration instance.

@param string $file
@param object $migration
@param bool   $pretend

@return void
@throws \Exception
Run down a migration instance .