Project/Trouble Shooting

[Spring Batch] 스프링 배치 Table 'xxx.BATCH_JOB_INSTANCE' doesn't exist 오류 해결 방법

ryuneng 2025. 1. 24. 00:04
반응형

⚠️ 오류

  • Table 'xxx.BATCH_JOB_INSTANCE' doesn't exist


🔍 원인

BATCH를 실행시키기 위해서는 Spring Batch 정보를 저장하는 몇가지 테이블이 필요하다.
원래는 application.yml에 spring.batch.jdbc.initalize-schema=always 설정을 추가하면
자동으로 BATCH 테이블이 생성되어야 하는데, Spring Boot 3.X 버전부터는 자동으로 생성해주지 않는다고 한다.




💡 해결 방법

  • 수동으로 SpringBatch 라이브러리 내에 있는 schema-[데이터 타입].sql을 실행한다.
  • External Libraries > org.springframework.batch.core 모듈 하위에 있는
    schema-[프로젝트에서 사용하는 DB]-sql 파일을 열어서 실행해주면 된다!
  • 나는 MySQL 사용중이라 schema-mysql.sql 파일 열어서 실행했다.



✅ 결과

  • 매우 매우 잘 실행되고 DB에 Insert까지 정상적으로 완료된 것을 확인할 수 있다.
    > TMI : 배치 처음 작업해본 건데 안되는 줄 알고 긴장하다가 감격.. 정말 감격




References

 


< 해당 글은 velog에서 이전하며 옮겨온 글로, 가독성이 좋지 않을 수 있는 점 양해 부탁드립니다. >

🔗 velog 버전 보기 : https://velog.io/@ryuneng2/Spring-Batch-스프링-배치-Table-xxx.BATCHJOBINSTANCE-doesnt-exist-오류-해결-방법