본문 바로가기

TIL

TIL) Debug: Sequelize migration error

Situation

- migration을 위한 sequelize 명령어 실행 시 오류 발생

1) #sequelize db:migrate

sequelize: 명령을 찾을 수 없습니다.

2) #npx sequelize-cli db:migrate

ERROR: Unkown database 'authentication'

3)  # sequelize db:seed:all

ERROR: Table 'authentication.Users' doesn't exist

 

- migration을 위한 file 이미 생성되어 있음

./migrations/xxxxxx-create-user.js

- migration을 위한 seeders 파일도 존재

./seeders/xxxxx-first-user.js

 

 

Solution

1) 명령어 문제 : sequelize, sequelize-cli 패키지 설치하여 해결

npm install sequelize

sudo npm install -g sequelize-cli

sequelize-cli 모듈을 -g(전역)로 설치하면 커맨더창에서 바로 sequelize 사용가능

sequlize-cli 모듈은 sequelize를 조금 더 효율적으로 사용하기 위해서 init 과정에서 몇 개의 폴더와 파일( config, model, seeder 등 )을 생성해줌.

 

2) database unknown error : db 생성하여 해결

sequelize db:create

위 명령어를 통해 config에 설정한 db를 먼저 만들어줘야 migration 가능

config.js 파일 안에는 db에 대한 정보(username, password, database 이름, host 등)가 기록되어 있음.

 

3) seed:all 명령어에서 table 없는 문제 : migration 통해 해결

sequelize db:migrate

db를 migrate하면 ./migrations/xxxxxx-create-user.js 파일 내 미리 정의한 table이 authentication db에 생성됨.

 

sequelize db:seed:all

이후에 seed:all 명령어를 실행하면 ./seeders/xxxxx-first-user.js 파일 내에 있던 기본 data가 bulk로 insert 됨.

 

 

 

참고

 

[Node.js] Sequelize(1) - sequelize와 sequelize-cli

Sequelize 시리즈 [Node.js] Sequelize(1) - sequelize와 sequelize-cli [Node.js] sequelize(2) - 모델 정의하기 [Node.js] sequelize(3) - CRUD + RESTful 게시판 만들기 [Node.js] sequelize(4) - 관계 설정( a..

victorydntmd.tistory.com