/** * Execute rollback and upgrade one version. * * @param \Jumilla\Versionia\Laravel\Migrator $migrator * @param string $group */ protected function doAgain(Migrator $migrator, $group) { // retreive installed versions $installed_migrations = $migrator->installedLatestMigrations(); $installed_version = data_get($installed_migrations, $group . '.version', Migrator::VERSION_NULL); $definition_versions = $migrator->migrationVersionsByDesc($group); if (!$this->checkInstalledVersion($installed_version, $definition_versions)) { return; } // remove migration log $definition_latest_version = array_get(array_keys($definition_versions), 0, Migrator::VERSION_NULL); if ($migrator->compareMigrationVersion($installed_version, $definition_latest_version) >= 0) { $this->line("<info>Remove log [{$group}/{$installed_version}]</info>"); $migrator->removeMigrationLog($group, $installed_version); } // downgrade & upgrade foreach ($definition_versions as $version => $class) { $this->infoDowngrade($group, $version, $class); $migrator->doDowngrade($group, $version, $class); $this->infoUpgrade($group, $version, $class); $migrator->doUpgrade($group, $version, $class); break; } }