protected function runUp($file, $batch, $pretend = false)
    {
        // First we will resolve a "real" instance of the migration class from this
        // migration file name. Once we have the instances we can run the actual
        // command such as "up" or "down", or we can just simulate the action.
        $migration = $this->resolve(
            $name = $this->getMigrationName($file)
        );

        if ($pretend) {
            $this->pretendToRun($name, $migration, 'up');

            return;
        }

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

        $this->runMigration($migration, 'up');

        // Once we have run a migrations class, we will log that it was run in this
        // repository so that we don't try to run it next time we do a migration
        // in the application. A migration repository keeps the migrate order.
        $this->storage->log($name, $batch);

        $this->note(Decorate::info('Migrated:') . " {$name}");
    }