@Override
    protected void configure() {
        super.configure();

        // Force creation of connection provider so that legacy migration code executes.
        // Allows other db modules to inject ForceLegacyMigration to ensure the legacy db migration
        // has run before they do
        // The legacy migration renames all the old tables, creates the new ones and copies old into new
        bind(ForceLegacyMigration.class)
                .to(ForceMigrationImpl.class)
                .asEagerSingleton();

        // MultiBind the connection provider so we can see status for all databases.
        GuiceUtil.buildMultiBinder(binder(), DataSource.class)
                .addBinding(LegacyDbConnProvider.class);
    }
Configures anything related to persistence, e.g. transaction management, the
entity manager factory, data sources.
<p>
This does not extend {@link stroom.db.util.AbstractDataSourceProviderModule} as the core migrations
are special and need to happen first before all the other migrations. {@link ForceLegacyMigration} is
used to achieve this by making all other datasource providers depend on {@link ForceLegacyMigration}.
stroom-legacy/stroom-legacy-db-migration/src/main/java/stroom/legacy/db/LegacyDbModule.java