Skip to content

Sequelize를 Sequelize Typescript CLI로 변경하기 (스포: 실패)

Yu Taek LEE edited this page Nov 24, 2020 · 2 revisions

TypeScript로 Sequelize CLI 사용하기

JavaScript 버전 Sequelize CLI를 사용하다가 이것도 typescript로 사용해야 하지 않겠니..? 라는 말이 팀에서 나왔다... 그 결과 이때까지 한 모든 것을 버리고 다시 시작하기로 결심...! 과감하게 모든 파일을 oldDB라는 폴더에 넣어두고 새로 시작하기로 한다...

image

이렇게 sequelize도 전부 typescript로 새로 깔아주고...

image

공식 문서에서 필요하다고 하는 녀석들을 다운받고... tsconfig 설정도 바꿔준다.

image

이젠 진짜로 시작합니다...!

image

...?왜 실행이 안되는거죠? 너무나 당황해버린 것... 그 이유는 migrations-path 때문이였다... 공식 문서에 확인해보면

It's usually the case that the compiled JavaScript code will be put in a different directory than the source TypeScript code, so whereas sequelize-cli had one migrations-path setting, sequelize-cli-typescript has two: migrations-source-path and migrations-compiled-path, which default to /migrations and /migrations/compiled respectively.

그랬다... migrations-source-path, migrations-compiled-path로 바꿔야 되는 것이다.

image

요럤던 .sequelierc 파일을 아래와 같이 변경했다.

image

이제 폴더들이 생성됬으니 전에 했던 녀석들을 옮길 차례...

image

모델을 생성해보려고 하는데 되지 않는다. 이게 무슨 일..? 한번 마이그레이션을 해보아야 하나?

image s

해보니 그래도 문제가 있다... 이녀석 시작부터 심상치가 않군.. 원인인 config.js로 가보자...? 넌 왜 js니...

image

module.exports를 앞에 붙여줘서 해결한다...

image

이후 migrations_compiled 폴더를 만들어주니 해결... 그렇다면 원래 문제인 모델 생성으로 돌아가볼까?

image

ok 해결이 잘 된것을 확인할 수 있었다. 그렇다면 이전 모델을 전부 작성하자~!

CLI로 생성된 녀석들을 살펴보니... image

image

기본적으로 만들어지는 녀석에 에러는 없어야되는거 아니냐..ㅋㅋㅋ.... 뒤의 녀석은 export가 하나라서 export default를 사용해서 에러를 없앴는데 앞의 녀석은 어떻게 해야할지 감이 오지 않았다. 그렇다면 방법은..? 구글링...

앞의 녀석을 구글링 하기 전에 뒤의 녀석의 SequelizeStatic을 import하는 것을 고치려고 했으나...? 어찌된 일인지 정말 관련된 정보를 찾을수가 없다...

구글링을 2시간동안 해본 결과 버전이 잘못되었다는 것을 알 수 있다. sequelize-typescript-cli는 공식이 아니였던 것! 아무리 검색해도 나오지 않고 내가 내린 결론이지만 그것이 정답인지는 확신할 수 없지만... 그것이 맞는 것 같다. 결국 새로 짜기로 했다... 파이팅...

Clone this wiki locally