/** * Prepare the migration database for running. */ protected function prepareDatabase() { $this->migrator->setConnection($this->option('database')); if (!$this->migrator->tableExists()) { $options = ['--database' => $this->option('database')]; $this->call('migration:install', $options); } }
/** * Execute the console command. */ public function fire() { $this->migrator->setConnection($this->input->getOption('database')); if ($this->migrator->tableExists()) { $this->warn('Migration table already exits.'); } else { $this->migrator->createTable(); $this->info('Migration table created successfully.'); } }
/** * Execute the console command. */ public function fire() { if (!$this->confirmToProceed()) { return; } $this->migrator->setConnection($this->option('database')); $this->migrator->rollback($this->getMigrationPaths(), ['step' => (int) $this->option('step'), 'seed' => $this->option('seed')]); // 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); } }
public function register(Container $app) { $app['migration.repository'] = function ($app) { return new MigrationRepository($app); }; $app['migrator'] = function ($app) { $migrator = new Migrator($app['migration.repository'], $app); $migrator->path($app['config']->get('database.migrations')); return $migrator; }; $app['migration.creator'] = function ($app) { return new MigrationCreator($app['fs']); }; $commands = [\Speedwork\Database\Migration\Console\InstallCommand::class, \Speedwork\Database\Migration\Console\RefreshCommand::class, \Speedwork\Database\Migration\Console\MigrateCommand::class, \Speedwork\Database\Migration\Console\RollbackCommand::class, \Speedwork\Database\Migration\Console\ResetCommand::class, \Speedwork\Database\Migration\Console\StatusCommand::class, \Speedwork\Database\Migration\Console\GenerateMigrationCommand::class]; $this->commands($commands); }
/** * Execute the console command. */ public function fire() { if (!$this->confirmToProceed()) { return; } $this->migrator->setConnection($this->option('database')); // 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 will just bail out with a info message for the developer. if (!$this->migrator->tableExists()) { return $this->comment('Migration table not found.'); } $this->migrator->reset($this->getMigrationPaths(), ['seed' => $this->option('seed')]); // 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); } }
protected function generateRelations($table) { $relations = $this->migrator->getSchemaManager()->listTableForeignKeys($table); $prefix = $this->migrator->getTablePrefix(); $contents = []; foreach ($relations as $relation) { $local = $relation->getLocalColumns(); $foreign = $relation->getForeignColumns(); $table = $relation->getForeignTableName(); $options = $relation->getOptions(); $table = str_replace($prefix, '#__', $table); $content = '$table->addForeignKeyConstraint('; $content .= '$this->getSchema()->getTable("' . $table . '"),'; $content .= "['" . implode("','", $local) . "'],"; $content .= "['" . implode("','", $foreign) . "'], ["; foreach ($options as $key => $value) { $content .= "'" . $key . "' => " . $this->column($value) . ', '; } $content .= ']);'; $contents[] = $content; } return implode("\n\t\t", $contents); }
/** * Get an array of all of the migration files. * * @return array */ protected function getAllMigrationFiles() { return $this->migrator->getMigrationFiles($this->getMigrationPaths()); }