/** * Prepare the migration database for running. * * @return void */ protected function prepareDatabase() { $this->migrator->setConnection($this->input->getOption('database')); if (!$this->migrator->repositoryExists()) { $options = array('--database' => $this->input->getOption('database')); $this->call('migrate:install', $options); } }
/** * Execute the console command. * * @return void */ public function fire() { if (!$this->confirmToProceed()) { return; } $this->migrator->setConnection($this->input->getOption('database')); $pretend = $this->input->getOption('pretend'); $this->migrator->rollback($pretend); // Once the migrator has run we will grab the note output and send it out to // the console screen, since the migrator itself functions without having // any instances of the OutputInterface contract passed into the class. foreach ($this->migrator->getNotes() as $note) { $this->output->writeln($note); } }
/** * Run the migration reset for the specified module. * * Migrations should be reset in the reverse order that they were * migrated up as. This ensures the database is properly reversed * without conflict. * * @param string $slug * * @return mixed */ protected function reset($slug) { $this->migrator->setconnection($this->input->getOption('database')); $pretend = $this->input->getOption('pretend'); $migrationPath = $this->getMigrationPath($slug); $migrations = array_reverse($this->migrator->getMigrationFiles($migrationPath)); if (empty($migrations)) { return $this->error('Nothing to rollback.'); } foreach ($migrations as $migration) { $this->info('Migration: ' . $migration); $this->runDown($slug, $migration, $pretend); } }