Class BatchClusterDataSourceScriptDatabaseInitializer
java.lang.Object
io.github.jchejarla.springbatch.clustering.autoconfigure.BatchClusterDataSourceScriptDatabaseInitializer
- All Implemented Interfaces:
org.springframework.beans.factory.InitializingBean
public class BatchClusterDataSourceScriptDatabaseInitializer
extends Object
implements org.springframework.beans.factory.InitializingBean
Optionally creates the cluster coordination tables (
BATCH_NODES,
BATCH_JOB_COORDINATION, BATCH_PARTITIONS, BATCH_JOB_PHASE_EVENTS) on startup,
mirroring Spring Batch's own schema initialization.
Driven by spring.batch.cluster.initialize-schema (ALWAYS / EMBEDDED /
NEVER; default EMBEDDED, i.e. only for embedded databases such as H2). The registering
bean is annotated @DependsOnDatabaseInitialization so this runs after the Spring Batch schema
has been created (by Flyway, Liquibase, or spring.sql.init — Spring Boot 4 no longer creates it
automatically), letting the foreign keys to BATCH_JOB_EXECUTION / BATCH_STEP_EXECUTION
resolve. This is intentionally a plain initializer, not a DataSourceScriptDatabaseInitializer,
so it is not itself treated as a database initializer (which would make the ordering annotation
self-referential). For production, prefer a managed migration tool or apply the bundled DDL manually.
- Author:
- Janardhan Chejarla
-
Constructor Summary
ConstructorsConstructorDescriptionBatchClusterDataSourceScriptDatabaseInitializer(DataSource dataSource, org.springframework.boot.sql.init.DatabaseInitializationMode mode, String schemaLocation) -
Method Summary
-
Constructor Details
-
BatchClusterDataSourceScriptDatabaseInitializer
public BatchClusterDataSourceScriptDatabaseInitializer(DataSource dataSource, org.springframework.boot.sql.init.DatabaseInitializationMode mode, String schemaLocation)
-
-
Method Details
-
afterPropertiesSet
public void afterPropertiesSet()- Specified by:
afterPropertiesSetin interfaceorg.springframework.beans.factory.InitializingBean
-