Spring-boot 의 버전을 2.3.4 RELEASE -> 2.7.3 으로 업데이트 했다.
이에 따라, Spring-Data-Elasticsearch 의 버전도 4.0.4 -> 4.4.2 로 업데이트 됐다.
elasticsearch-sources.jar 도 7.6.2 -> 7.17.4 업데이트 됐다.
기존 MySQL -> ES로 데이터를 옮기는 마이그레이션 배치를 실행 중에 에러 로그가 올라왔다.
로그를 찍어보니
NPE네!
스프링 버전업은 예전부터 했기 때문에, 이미 에러가 발생했어야 했다.
하지만 지금까지 마이그레이션은 (아직 버전업이 적용되지 않은) 브랜치에서 수행했기 때문에, 에러가 발생하지 않았다.
라이브러리를 까보니 lang을 넣으라더라. 그래서 넣어줬더니 해결됐다.
이렇게!
lang은 notnull 타입이어야 하는데
(스프링 버전업 전) spring-data-elasticsearch 4.0.4 에서 UpdateQuery.java 의 코드
(스프링 버전업 후) spring-data-elasticsearch 4.4.2 에서 UpdateQuery.java 의 코드
위 두 사진을 보면 알 수 있듯, 4.0.4에서는 lang이 default로 들어가지만, 4.4.2에서는 아니여서 에러가 발생했다.
기본적으로는 painless
더 많은 옵션은 이곳을 참고하세요.!
Reference
https://www.elastic.co/guide/en/elasticsearch/reference/current/modules-scripting.html