diff --git a/airbyte-server/src/main/java/io/airbyte/server/DatabaseEventListener.java b/airbyte-server/src/main/java/io/airbyte/server/DatabaseEventListener.java new file mode 100644 index 0000000000000..099802225be9b --- /dev/null +++ b/airbyte-server/src/main/java/io/airbyte/server/DatabaseEventListener.java @@ -0,0 +1,52 @@ +/* + * Copyright (c) 2022 Airbyte, Inc., all rights reserved. + */ + +package io.airbyte.server; + +import io.airbyte.db.check.DatabaseCheckException; +import io.airbyte.db.check.DatabaseMigrationCheck; +import io.micronaut.context.event.StartupEvent; +import io.micronaut.core.annotation.Order; +import io.micronaut.runtime.event.annotation.EventListener; +import jakarta.inject.Named; +import jakarta.inject.Singleton; +import java.lang.invoke.MethodHandles; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +@Singleton +public class DatabaseEventListener { + + private static final Logger log = LoggerFactory.getLogger(MethodHandles.lookup().lookupClass()); + + private final DatabaseMigrationCheck configsMigrationCheck; + + private final DatabaseMigrationCheck jobsMigrationCheck; + + public DatabaseEventListener( + @Named("configsDatabaseMigrationCheck") final DatabaseMigrationCheck configsMigrationCheck, + @Named("jobsDatabaseMigrationCheck") final DatabaseMigrationCheck jobsMigrationCheck) { + this.configsMigrationCheck = configsMigrationCheck; + this.jobsMigrationCheck = jobsMigrationCheck; + } + + @EventListener + @Order(1) + public void onStartup(final StartupEvent event) { + log.info("Checking configs database flyway migration version..."); + try { + configsMigrationCheck.check(); + } catch (final DatabaseCheckException e) { + throw new RuntimeException(e); + } + + log.info("Checking jobs database flyway migration version..."); + try { + jobsMigrationCheck.check(); + } catch (final DatabaseCheckException e) { + throw new RuntimeException(e); + } + } + +} diff --git a/airbyte-server/src/main/java/io/airbyte/server/config/HelperBeanFactory.java b/airbyte-server/src/main/java/io/airbyte/server/config/HelperBeanFactory.java new file mode 100644 index 0000000000000..1f7b478f5acf8 --- /dev/null +++ b/airbyte-server/src/main/java/io/airbyte/server/config/HelperBeanFactory.java @@ -0,0 +1,21 @@ +/* + * Copyright (c) 2022 Airbyte, Inc., all rights reserved. + */ + +package io.airbyte.server.config; + +import io.airbyte.config.persistence.ConfigRepository; +import io.airbyte.persistence.job.JobPersistence; +import io.airbyte.persistence.job.WorkspaceHelper; +import io.micronaut.context.annotation.Factory; +import jakarta.inject.Singleton; + +@Factory +public class HelperBeanFactory { + + @Singleton + public WorkspaceHelper workspaceHelper(final ConfigRepository configRepository, final JobPersistence jobPersistence) { + return new WorkspaceHelper(configRepository, jobPersistence); + } + +} diff --git a/airbyte-server/src/main/resources/application.yml b/airbyte-server/src/main/resources/application.yml index 72826a35be1bc..3b6c04b20adf0 100644 --- a/airbyte-server/src/main/resources/application.yml +++ b/airbyte-server/src/main/resources/application.yml @@ -23,8 +23,6 @@ airbyte: initialization-timeout-ms: ${JOBS_DATABASE_INITIALIZATION_TIMEOUT_MS:60000} minimum-migration-version: ${JOBS_DATABASE_MINIMUM_FLYWAY_MIGRATION_VERSION} version: ${AIRBYTE_VERSION} - workspace: - root: ${WORKSPACE_ROOT} secret: persistence: ${SECRET_PERSISTENCE:TESTING_CONFIG_DB_TABLE} store: