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