private String modifyStroomConfig(final Path configFile,
                                      final String url,
                                      final String username,
                                      final String password,
                                      final String stroomHomeEnvBase,
                                      final String stroomTempEnvBase,
                                      final Map<String, Object> map,
                                      String yamlStr) {

        //noinspection unchecked
        final Map<String, Object> connMap = (Map<String, Object>) NullSafe.get(
                map.get("appConfig"),
                obj -> ((Map<String, Object>) obj).get("commonDbDetails"),
                obj -> ((Map<String, Object>) obj).get("connection"));

        Objects.requireNonNull(connMap, () ->
                LogUtil.message(
                        "Can't find path appConfig.commonDbDetails.connection in '{}'",
                        configFile.toAbsolutePath()));

        log("  Setting DB connection properties:");
        yamlStr = replaceProp(
                yamlStr,
                connMap,
                ConnectionConfig.PROP_NAME_JDBC_DRIVER_URL,
                "${STROOM_JDBC_DRIVER_URL:-" + url + "}");
        yamlStr = replaceProp(
                yamlStr,
                connMap,
                ConnectionConfig.PROP_NAME_JDBC_DRIVER_USERNAME,
                "${STROOM_JDBC_DRIVER_USERNAME:-" + username + "}");
        yamlStr = replaceProp(
                yamlStr,
                connMap,
                ConnectionConfig.PROP_NAME_JDBC_DRIVER_PASSWORD,
                "${STROOM_JDBC_DRIVER_PASSWORD:-" + password + "}");

        //noinspection unchecked
        final String nodeName = (String) NullSafe.get(
                map.get("appConfig"),
                obj -> ((Map<String, Object>) obj).get("node"),
                obj -> ((Map<String, Object>) obj).get("name"));
        Objects.requireNonNull(nodeName, () ->
                LogUtil.message("Can't find path appConfig.node.name in '{}'", configFile.toAbsolutePath()));

        logWithColouredArgs("  Node name is '{}'", nodeName);
        final String stroomHome = stroomHomeEnvBase + "/" + nodeName;
        final String stroomTemp = stroomTempEnvBase + "/" + nodeName;

        //noinspection unchecked
        final Map<String, Object> pathMap = (Map<String, Object>) NullSafe.get(
                map.get("appConfig"),
                obj -> ((Map<String, Object>) obj).get("path"));

        Objects.requireNonNull(pathMap, () ->
                LogUtil.message("Can't find path appConfig.path in '{}'", configFile.toAbsolutePath()));

        log("  Setting path properties:");
        yamlStr = replaceProp(
                yamlStr,
                pathMap,
                PathConfig.PROP_NAME_HOME,
                "${STROOM_HOME:-" + stroomHome + "}");
        yamlStr = replaceProp(
                yamlStr,
                pathMap,
                PathConfig.PROP_NAME_TEMP,
                "${STROOM_TEMP:-" + stroomTemp + "}");
        return yamlStr;
    }
PSVM for making a dedicated stroom DB and directory structure to allow running multiple
stroom versions, albeit not concurrently.
You can't run multiple strooms concurrently time due to port clashes and the fact that
there is only one nginx instance.
<p>
It will prompt you for a version string, e.g. '7.5' which will be used in the DB name
and in the stroom home/temp file paths.
</p>
<p>
A suggested approach is to have:
<ul>
    <li><pre>Dir: ~/git_work/stroom,
    env name input: 'master',
    db name: 'stroom_master',
    home: '~/.stroom/stroom_master'</pre></li>
    <li><pre>Dir: ~/git_work/stroom,
    env name input: '7.5',
    db name: 'stroom_v7_5',
    home: '~/.stroom/stroom_v7_5'</pre></li>
    <li><pre>Dir: ~/git_work/stroom,
    env name input: '7.6',
    db name: 'stroom_v7_6',
    home: '~/.stroom/stroom_v7_6'</pre></li>
</ul>

</P>
stroom-test-common/src/main/java/stroom/test/common/util/db/SetupDevEnv.java