spring_session' doesn't exist 세션 테이블 생성이 안되는 오류

유저 서버와 어드민 서버를 분리하면서 유저 서버는 session 저장소를 redis, 어드민은 jdbc로 가져가도록 했다.

어드민은 jdbc로 가져가게 된 이유어드민 유저의 수는 일반 유저에 비해 많이 적기 때문에 세션 I/O 과정에 부하가 적어 선택하게 되었다. (유지 보수 비용도 고려

 

세션 저장소로 jdbc로 사용하려면 아래와 같이 프로퍼티 파일에 옵션을 주면된다.

spring.session.store-type=jdbc

하지만 이렇게 설정을하고 실행을 하면 spring_session 테이블이 생성이 안되었다는 에러가 발생할것이다.

 

문제 해결

만약 프로젝트에서 사용하는 데이터베이스가 embeded 타입이라면 spring_session 테이블은 자동 생성되도록 기본 설정 되어 있다.

하지만 나는 embeded 타입이 아닌 db 서버가 따로 있기 때문에 spring_session 테이블이 생성되지 않는 것이였다.

 

spring_session 테이블을 자동 생성하도록 하는 방법은 간단하다.

아래처럼 옵션을 추가해주기만하면된다.

spring.session.store-type=jdbc
spring.session.jdbc.initialize-schema=always