/** * 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); } }
/** * Execute the console command. */ public function fire() { $this->migrator->setConnection($this->option('database')); if (!$this->migrator->tableExists()) { return $this->error('No migrations found.'); } $migrations = $this->migrator->getRepository()->getMigrations(); $files = $this->getAllMigrationFiles(); $list = []; foreach ($files as $file) { $name = $this->migrator->getMigrationName($file); $list[] = in_array($name, $migrations) ? ['<info>Y</info>', $name] : ['<fg=red>N</fg=red>', $name]; } if (count($list) > 0) { $this->table(['Ran?', 'Migration'], $list); } else { $this->error('No migrations found'); } }
/** * 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); } }
/** * Execute the console command. */ public function fire() { // It's possible for the developer to specify the tables to modify in this // schema operation. The developer may also specify if this table needs // to be freshly created so we can create the appropriate migrations. $name = trim($this->input->getArgument('name')); // Identify the type based on name list($stub, $table) = explode('-', $name, 2); if ($this->option('table')) { $table = $this->option('table'); } $types = ['table' => 'table', 'view' => 'view', 'procedure' => 'procedure']; $stubs = ['create' => 'create', 'update' => 'update', 'seed' => 'seed', 'delete' => 'update', 'view' => 'view']; $type = end(explode('-', $table)); $stub = $stubs[$type] ?: $stubs[$stub]; $stub = $stub ?: 'create'; $name = str_replace('-', '_', $name); if (!$types[$type]) { $name .= '_table'; } else { $table = str_replace('-' . $type, '', $table); } $table = '#__' . str_replace('-', '_', $table); $replace = []; $from = $this->option('from'); if ($from) { $this->migrator->setConnection($this->option('database')); $replace['COLUMN'] = $this->generateColumns($from); $replace['INDEX'] = $this->generateIndexes($from); $replace['RELATION'] = $this->generateRelations($from); $stub = 'createfrom'; } // Now we are ready to write the migration out to disk. Once we've written // the migration out, we will dump-autoload for the entire framework to // make sure that the migrations are registered by the class loaders. $this->writeMigration($name, $table, $stub, $replace); }