안녕하세요 @realmankwon입니다.
node.js를 사용하여 개발하면서 가장 많이 사용하는 모듈 중에 하나가 sequelize입니다.
DB와 연동을 편하게 하면서 객체화가 가능한 ORM 모듈인데 트랜잭션 처리도 쉽고 개발도 용이하여서 제게는 참 유익한 모듈입니다.
요즘 새로운 프로젝트들을 많이 개발하게 되면서 멘땅에 헤딩을 하는 마음으로 프로젝트를 처음부터 빌드하는 경우가 많습니다.
물론 하다보면 기존에 사용했던 모듈들을 사용하기는 하지만 일단 기본틀은 아무 것도 없는 상태에서 다시 만들고 있네요.
그런데 sequelize로 처음에 셋팅을 하려고하니 안 되었습니다.
생각해 보니 예전에 처음 빌드를 윈도우에서 했더군요.
회사에서 시간이 날때 개발을 하다보니 그렇게 된 것 같습니다.
현재는 맥으로만 개발을 하다보니 환경이 달라서 sequelize 설치도 잘 안되고 실행도 잘 안 되었습니다.
시간이 나면 이 문제를 반드시 해결하겠다고 생각하고 잠시 미뤄뒀는데 오늘에서야 그 문제를 해결했네요. ㅎㅎ
1 . sequelize, sequelize-cli 설치
윈도우에서는 다음과 같이 npm으로 두 모듈을 한꺼번에 설치하면 됩니다.
- npm install sequelize sequelize-cli
하지만 맥에서는 다음과 같은 에러가 발생합니다.
npm WARN checkPermissions Missing write access to /usr/local/lib/node_modules/sequelize-cli
npm ERR! code ENOENT
npm ERR! syscall access
npm ERR! path /usr/local/lib/node_modules/sequelize-cli
npm ERR! errno -2
npm ERR! enoent ENOENT: no such file or directory, access '/usr/local/lib/node_modules/sequelize-cli'
npm ERR! enoent This is related to npm not being able to find a file.
npm ERR! enoent
npm ERR! A complete log of this run can be found in:
구글링을 해보니 맥의 보안 정책상 안 되는 것이라고 하는데 이런저런 방법을 동원하면 된다는 글들이 있어서 따라 해봤지만 잘 되지 않았습니다.
그러다가 방법을 찾았는데 그냥 yarn으로 설치를 해 주면 된다고 하는군요...ㅜㅜ
- yarn add global sequelize-cli
좀 허무하네요...
2 . sequelize init
sequelize-cli를 설치하고 나서 config, models 폴더를 자동으로 생성해 주기 위해서는 다음의 명령어를 입력하면 자동 생성이 됩니다.
- sequelize init
하지만 sequelize-cli가 정상적으로 설치되었음에도 다음과 같이 오류가 발생하더군요.
zsh: command not found: sequelize
또 구글링을 해 보니 npx로 실행을 하면 된다고 합니다.
바로 실행을 했더니 되는군요!!!
- npx sequelize init
결과는 다음과 같이 생성이 잘 되었습니다.
Sequelize CLI [Node: 14.18.0, CLI: 6.4.1, ORM: 6.21.2]
Created "config/config.json"
Successfully created models folder at "[프로젝트 경로]/models".
Successfully created migrations folder at "[프로젝트 경로]/migrations".
Successfully created seeders folder at "[프로젝트 경로]/seeders".
저같은 경우는 migrations와 seeders 폴더는 사용을 하지 않아서 생성 후에 바로 삭제를 하였습니다.
혹시나 맥에서 sequelize 초기 셋팅에 어려움이 있으신 분들은 참고하시기 바랍니다.