@Override
    protected void runCommand(final Bootstrap<Config> bootstrap,
                              final Namespace namespace,
                              final Config config,
                              final Injector injector) {

        // Force guice to get all datasource instances from the multibinder
        // so the migration will be run for each stroom module
        // Relies on all db modules adding an entry to the multibinder
        final Set<DataSource> dataSources = injector.getInstance(
                Key.get(GuiceUtil.setOf(DataSource.class)));

        LOGGER.info("Used {} data sources:\n{}",
                dataSources.size(),
                dataSources.stream()
                        .map(dataSource -> dataSource instanceof DataSourceProxy
                                ? ((DataSourceProxy) dataSource).getName()
                                : dataSource.getClass().getName())
                        .map(name -> "  " + name)
                        .sorted()
                        .collect(Collectors.joining("\n")));

    }
Additional DW Command so instead of
... server ../local.yml
you can do
... migrate ../local.yml
and it will run all the DB migrations without running up the app
stroom-app/src/main/java/stroom/app/commands/DbMigrationCommand.java