Example #1
0
 /**
  * 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);
     }
 }
Example #2
0
 /**
  * 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.');
     }
 }
Example #3
0
 /**
  * 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);
 }
Example #5
0
 /**
  * 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);
 }
Example #7
0
 /**
  * Get an array of all of the migration files.
  *
  * @return array
  */
 protected function getAllMigrationFiles()
 {
     return $this->migrator->getMigrationFiles($this->getMigrationPaths());
 }