springboot 2.x 이상 springbatch table문제 해결 방법!

2020. 8. 13. 15:42OpenSource/Spring Batch

반응형

id 'org.springframework.boot' version '2.3.2.RELEASE'를 사용 중!

그리고 springbatch개발을 하고 있다!

 

그런데? 스프링배치를 수행하면서 아래의 오류 발생~~!

bad SQL grammar [SELECT JOB_INSTANCE_ID, JOB_NAME from BATCH_JOB_INSTANCE 
where JOB_NAME = ? and JOB_KEY = ?]; 
nested exception is java.sql.SQLSyntaxErrorException: 
Table 'BATCH_JOB_INSTANCE' doesn't exist

스프링배치는 수행관련 내용들을 메타데이터로 남겨서 테이블에 저장하는데

해당 테이블 스키마를 생성하지 않아서 문제가 되었다.

https://docs.spring.io/spring-boot/docs/2.0.0.M7/reference/htmlsingle/#howto-initialize-a-spring-batch-database

위와 같은 내용이 있었다. 스프링부트 2.x 이상일 경우 위와같은 내용을 

application.yaml 또는 application.properties에 작성하면 된다.

저자의 경우 application.yaml에 아래와 같이 작성하였고

spring.batch.initialize-schema: always

그리고나서 스프링배치를 돌리면??

아래와 같이 테이블이 자동적으로 생성되는것을 알 수 있다. 

스프링배치 테이블들

 

반응형