TIL-48, ORM
ORM (Object-Relational Mapping)
ORM을 통해 Database의 엔티티, 레코드 들을 JavaScript의 Object(객체), Class들을 다루듯이 이용할 수 있다.
Associations
- 1:1 관계 → HasOne, BelongsTo
- 1:N 관계 → HasMany, BelongsTo
- N:M 관계 → HasMany, BelongsToMany
Transaction
- 중간에 문제가 생기면 롤백, 성공하면 커밋
Sequelize 셋팅
npm install --save sequelize
를 입력해 sequelize 설치npm install --save-dev sequelize-cli
를 입력해 마이그레이션 하는 툴을 설치 (npx sequelize-cli —help
를 통해 명령어 종류 파악 가능)npx sequelize-cli init
을 입력해 cli를 통해 ORM을 사용할 수 있도록 Bootstraping(초기 세팅)을 해준다
config/config.json
models/
migrations/
seeders/
성공적인 Bootstraping이 되면 위와 같은 파일&폴더들이 생성된다.
- 설정파일을 이용해 MySQL 접속 설정을 해줘야 한다. config.json에 들어가보자.
Model 만들기 및 Migration
- name: model 이름
- attributes: 모델 속성
user라는 이름의 모델을 만들어보자
npx sequelize-cli model:generate --name user --attributes firstName:string,lastName:string,email:string
user라는 모델에 string속성을 가진 firstName, lastName, email 필드가 생성된다.
- 속성은 string, integer등으로 명명할 수 있고, 필드 사이에는 띄어쓰기를 하지 않는다.
- id, createdAt, updatedAt 등의 필드는 자동으로 생성된다.
스키마의 변경이 있을 때마다 마이그레이션을 실행해줘야 한다.
npx sequelize-cli db:migrate
를 입력해 마이그레이션 해준다.
npx sequelize-cli db:migrate:undo
를 입력하면 마이그레이션을 취소한다.