Develop Log

play framework & slick 업그레이드

Samgim 2016. 9. 4. 01:51


개인 프로젝트로 scala + play 2.3 + slick 2.x 를 쓰고 있었다.


근데 새로 play 2.5가 나왔길래, play 버전도 올리고 slick도 2.x 에서 3.x 로 같이 올려볼 생각이었다.


그런데 쉬운 일이 아니더라(...)

너무 많이 바뀌어서 삽질을 좀 했다. 아니 좀 끔찍할 정도로 해버렸어...



play 1.x 에서 2.0 으로 갈 때도 그렇지만, play 는 버전 업그레이드에 하위 호완성 같은 건 기대하지 않는 것이 좋을 것 같다.

그냥 버전 업그레이드만 하면 기존 코드가 어느 정도 돌아갈 거라는 기대는 차곡차곡 넣어두는 편이 좋았다.


i18n 메시지 가져오는 것도 바뀌었고,

routes 파일 쓰는 방법도 @inject 를 통하지 않으면 다 에러 난다(...)


그리고 slick 은 메이저 버전 업이니만큼 정말 많이 바뀌었는데, withConnection 이나 withSession 이 사라진 건 정말 혼란...

query 날리는 방식도 전부 변경 되어서, 모델 다 수정함(...)

진짜 서비스라면 업그레이드 안했을거야...




뭘 했는지는 간단히 써놓자.

i18n Messages 같은 경우는 


import play.api.i18n.MessagesApi

class Application @Inject()(val messagesApi: MessagesApi) extends Controller {


이런 식으로 @Inject 로 처리했다.

private val SYSTEM_FAULT_MESSAGE = messagesApi.messages.get("system.fault.message")


요렇게 불러오면 잘 가지고 오더군.

http://stackoverflow.com/questions/36432917/play-framework-2-5-scala-i18n 

이 링크 참고했다.



routes 파일 쓰는 방법도 마찬가지로 @Inject 해오면 간단히 해결된다.

class mainController @Inject() extends Controller {

이렇게 해주면 routes에 별도로 뭔가 해주지 않아도 잘 된다.

그래도 이게 이해가 안가서 삽질을 제법 했음. 영어가 읽기 귀찮았던 것도 있고...






slick 은 너무 많이 바뀌었으므로.. 적어봤자 무의미


https://anadea.info/blog/comparative-analysis-of-slick-2-and-slick-3

일단 이 링크를 참고 했다.


특이한 점이라면 withSession 을 Future로 말아버린 것 같은데, Future 를 잘 몰라서 다음에 찾아보는 걸로.. 졸려..


http://slick.lightbend.com/doc/3.1.0/dbio.html 

slick 의 이 문서도 꽤 많이 참고 했다.


지금 보면 조금 밖에 안 고친 것 같은데 삽질이 좀 심했음...

major 버전은 진짜 못 올리겠다(...)




내일은 front 손 봐야지. 자자.





'Develop Log' 카테고리의 다른 글

Redux 의 존재 이유를 알았다  (0) 2016.09.23
Socket.io 랑 play 는 결합이 안되나..  (0) 2016.09.19
npm 에 react 올려봄  (0) 2016.09.14
젠장 Babel 너무 좋은데...  (0) 2016.09.04
개인 홈페이지를 열었다.  (0) 2016.09.03