Error Handling with Sequelize ORM
프로젝트 구현 중 Sequelize ORM 부분에서 생각보다 애를 먹었다.
그래서 에러 핸들링 과정을 남겨보려고 한다.
Sequelize와 같은 ORM을 사용하면 JavaScript 문법만으로 DB에 접근이 가능하다.
또한 모델을 쉽게 생성할 수 있으며, 마이그레이션으로 DB의 버전 관리가 가능해진다.
Sequelize를 통해 DB와 서버를 연결하고, 모델과 컨트롤러를 만드는 과정은 다음과 같다.
Sequelize 설치 및 부트스트랩 진행하기
Sequelize로 모델을 생성하고, 마이그레이션으로 DB와 연결하기
express 문법으로 라우팅을 통해 end point와 연결하기
get, post, redirect에 해당하는 컨트롤러 구축하기
association을 통한 join 테이블 생성하기
시퀄라이즈 마이그레이션(migration) 기초
시퀄라이즈 프레임워크를 사용하여 서버 DB에 스키마를 심는데는 별로 어려움이 없었다.
시퀄라이즈 공식홈페이지에 있는 Migrations내용을 처음부터 Running Migrations 부분까지 천천히 따라하기만 하면 별문제 없이 된다.
문제는 시퀄라이즈 DB 관계를 설정하는 부분이었다.
관계(Associations)
DB관계를 설정하기 위해서는 이론적인 관계개념 대해서 알고 있어야 실제로 코드로 관계 설정하기가 쉽다.
무작정 공식사이트를 따라서 모델과 마이그레이션을 만들고 코드를 직접 수정한 뒤에 마이그레이트를 하면
데이터베이스에 관계 설정, 컬럼까지 추가가 될 줄 알았지만 오산이었다.
참고 사이트… 꼼꼼히 읽어봐야 했다.
우리의 프로젝트는 크롤링 부분이 kick이고 메인 기능이다 보니진 N:M 관계 설정을 의도치 않게 놓치게 된 부분이 있다. 반드시 학습을 하거나 추후에 추가 해야 할 것 같다.
코드 작성 순서를 정리 하자면.
- 각 테이블의 속성을 작성해 마이그레이션을 생성한다.(외래키 필드와 조인 테이블을 제외)
2.외래키 설정을 한다.(다른 마이그레이션 파일 사용)
1) models 폴더 안에 있는 파일에서 관계설정
2) migrations 폴더 안에서 2-1을 토대로 up, down 파일만들어 주기.
- N:M관계인 조인테이블 설정을 한다.(다른 마이그레이션 파일 사용)
실습 후 내용 추가 필요
DB 스케마