diff --git a/src/main/java/com/wb/domainserver/common/config/GconeSourceConfig.java b/src/main/java/com/wb/domainserver/common/config/GconeSourceConfig.java index 1ac6914..989c16c 100644 --- a/src/main/java/com/wb/domainserver/common/config/GconeSourceConfig.java +++ b/src/main/java/com/wb/domainserver/common/config/GconeSourceConfig.java @@ -10,9 +10,13 @@ import org.springframework.boot.context.properties.ConfigurationProperties; import org.springframework.boot.jdbc.DataSourceBuilder; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; +import org.springframework.context.annotation.DependsOn; import org.springframework.context.annotation.Primary; +import org.springframework.core.io.ClassPathResource; import org.springframework.core.io.support.PathMatchingResourcePatternResolver; import org.springframework.jdbc.datasource.DataSourceTransactionManager; +import org.springframework.jdbc.datasource.init.DataSourceInitializer; +import org.springframework.jdbc.datasource.init.ResourceDatabasePopulator; import org.springframework.transaction.PlatformTransactionManager; import org.springframework.transaction.annotation.EnableTransactionManagement; @@ -61,7 +65,21 @@ public class GconeSourceConfig { return new DataSourceTransactionManager(gconeDataSource); } + // Spring Batch 스키마 초기화 (BATCH_JOB_SEQ 등 시퀀스 테이블 생성) + @Bean(name = "batchSchemaInitializer") + public DataSourceInitializer batchSchemaInitializer(@Qualifier("gconeDataSource") DataSource gconeDataSource) { + ResourceDatabasePopulator populator = new ResourceDatabasePopulator(); + populator.addScript(new ClassPathResource("org/springframework/batch/core/schema-drop-mysql.sql")); + populator.addScript(new ClassPathResource("org/springframework/batch/core/schema-mysql.sql")); + populator.setContinueOnError(true); + DataSourceInitializer initializer = new DataSourceInitializer(); + initializer.setDataSource(gconeDataSource); + initializer.setDatabasePopulator(populator); + return initializer; + } + @Bean + @DependsOn("batchSchemaInitializer") public JobRepository jobRepository(@Qualifier("gconeTransactionManager") PlatformTransactionManager transactionManager, @Qualifier("gconeDataSource") DataSource gconeDataSource) throws Exception { JobRepositoryFactoryBean factory = new JobRepositoryFactoryBean(); factory.setDataSource(gconeDataSource);