container = $container; $this->app = $application; parent::__construct(); } /** * {@inheritdoc} */ protected function configure() { $this ->setName('migrate') ->setDescription('Run outstanding migrations'); } /** * {@inheritdoc} */ protected function fire() { $this->info('Migrating Flarum...'); $this->upgrade(); $this->info('DONE.'); } public function upgrade() { $this->container->bind(Builder::class, function ($container) { return $container->make(ConnectionInterface::class)->getSchemaBuilder(); }); $migrator = $this->container->make(Migrator::class); $migrator->setOutput($this->output); $migrator->run(__DIR__.'/../../../migrations'); $extensions = $this->container->make(ExtensionManager::class); $extensions->getMigrator()->setOutput($this->output); foreach ($extensions->getEnabledExtensions() as $name => $extension) { if ($extension->hasMigrations()) { $this->info('Migrating extension: '.$name); $extensions->migrate($extension); } } $this->container->make(SettingsRepositoryInterface::class)->set('version', $this->app->version()); $this->info('Publishing assets...'); $this->container->make('files')->copyDirectory( $this->app->vendorPath().'/components/font-awesome/webfonts', $this->app->publicPath().'/assets/fonts' ); } }