if (!$version) {
        if ($nextAction == 'up' || $nextAction == 'down') {
            $version = 0;
            $action = $nextAction;
            $items = $versionManager->getVersions(array('status' => $action == 'up' ? 'new' : 'installed', 'search' => $search));
            foreach ($items as $aItem) {
                if (!in_array($aItem['version'], $skipVersions)) {
                    $version = $aItem['version'];
                    break;
                }
            }
        }
    }
    if ($version && $action) {
        if (!$restart) {
            Sprint\Migration\Out::out('[%s]%s (%s) start[/]', $action, $version, $action);
        }
        $success = $versionManager->startMigration($version, $action, $params);
        if ($versionManager->needRestart($version)) {
            $json = json_encode(array('params' => $versionManager->getRestartParams($version), 'action' => $action, 'version' => $version, 'next_action' => $nextAction, 'restart' => 1, 'search' => $search));
            ?>
<script>migrationExecuteStep('migration_execute', <?php 
            echo $json;
            ?>
);</script><?php 
        } elseif ($nextAction) {
            if (!$success) {
                $skipVersions[] = $version;
            }
            $json = json_encode(array('next_action' => $nextAction, 'skip_versions' => $skipVersions, 'search' => $search));
            ?>