private function migrateDb($sDbHost = null, $sDbUser = null, $sDbPass = null, $sDbName = null)
    {
        //  Execute the migrate command, non-interactively and silently
        $iExitCode = $this->callCommand(
            'db:migrate',
            [
                '--dbHost' => $sDbHost,
                '--dbUser' => $sDbUser,
                '--dbPass' => $sDbPass,
                '--dbName' => $sDbName,
            ],
            false,
            true
        );

        if ($iExitCode == static::EXIT_CODE_SUCCESS) {

            $this->oOutput->writeln('<info>done!</info>');

            return true;

        } else {

            $this->abort(
                self::EXIT_CODE_FAILURE,
                [
                    'The Migration tool encountered issues and aborted the migration.',
                    'You should run it manually and investigate any issues.',
                    'The exit code was ' . $iExitCode,
                ]
            );

            return false;
        }
    }