Judaeng

Sequelize (1) - sequelize와 sequelize-cli, 모델 정의하기 본문

Develop/ORM

Sequelize (1) - sequelize와 sequelize-cli, 모델 정의하기

Judaeng 2021. 9. 27. 02:00

🤷‍♂️Sequelize란?

NodeJS에서 MySQL 등 관계형 데이터베이스를 쉽게 다룰 수 있게 도와주는 라이브러리입니다.

Sequelize는 대표적인 NodeJS의 ORM(Object Relational Mapping)입니다.

 

ORM은 머하는 친구인가요?

ORM 복습하기

 

ORM 알아보기

++자바스크립트 ORM이 아니라 ORM이 무엇인지, 어떤 개념인지 알아보고 공부하기 위해 작성한 것입니다. 자바스크립트 프레임워크로는 TYPEORM, Prisma, Sequelize, BOOKSHELF.JS 등이 있습니다. ORM(Object Relat.

hi-judaeng.tistory.com

위에 ORM을 정리해놓은 글을 보는 것이 Best이지만, 간단하게 정리하자면 ORM은 객체와 관계형 데이터베이스의 관계를 연결(매핑)해주는 도구(패러다임)이다.

 

🤮Sequelize 실습하기


Sequelize 설치하기

1. 우선 Sequelize와 mysql2를 설치해줍니다.

npm i sequelize
npm i mysql2

2. sequelize-cli 설치해주세요.

npm i sequelize-cli

Sequelize가 전역 설치가 안되어 있는 경우 따로 전역 설치를 해주세요. 

sequelize-cli는 마이그레이션을 할 수 있도록 돕는 툴로, CLI에서 모델을 생성해주거나, 스키마 적용을 할 수 있도록 돕습니다.

sequelize init

위에 명령어를 사용하여 호출하면 config, models, migrrations, seeder라는 폴더가 생성된다고 한다.

그냥 빈 프로젝트를 만들어주는 것 같다. 하지만 나는 위에 코드로 설정하지 않았다.

Sequelize 공식 문서를 통해 만들었기 때문에 아래 코드를 사용하여 프로젝트 부트 스트랩을 만들었다.

근데 둘 다 상관없다.

npx sequelize-cli init
  • config- 데이터베이스와 연결하는 방법을 CLI를 알려주는 구성 파일이 포함되어 있습니다.
  • models 프로젝트에 대한 모든 모델이 포함되어 있습니다.
  • migrations, contains all migration files
  • seeders, 모든 종자 파일이 포함되어 있습니다.

3. 모델 생성(및 마이그레이션)

cli를 통해 모델을 만들어야 합니다.

name : 모델의 이름

attributes: 모델 속성 목록

npx sequelize-cli model:generate --name User --attributes firstName:string,lastName:string,email:string

위에 코드처럼 모델의 속성을 정의해주는 것이 중요하다.

자신이 계획했던 데이터베이스 스키마들을 정의한다고 생각하면 될 것 같다.

위에 코드를 적어주기 전에 MySQL DB가 없다면 만들어줘야 한다.

npx sequelize-cli db:create [원하는 DB이름]

그 이후에 아래 코드처럼 마이그레이션을 진행하면 된다.

npx sequelize-cli db:migrate

config.json 파일이 생성된 후에 설명을 간단히 해보자.

{
  "development": {
    "username": "root", // 유저이름
    "password": null,   // DB password
    "database": "database_development", // DB 이름
    "host": "127.0.0.1",
    "dialect": "mysql"
  },
  "test": {
    "username": "root",
    "password": null,
    "database": "database_test",
    "host": "127.0.0.1",
    "dialect": "mysql"
  },
  "production": {
    "username": "root",
    "password": null,
    "database": "database_production",
    "host": "127.0.0.1",
    "dialect": "mysql"
  }
}

위 같이 config.json 설정을 잘 해주어야 DB 이름, password 등에서 에러가 안난다. password를 지정해줬다면 그에 따라 DB password 설정도 바꿔줘야 한다.

 

여기까지 진행했다면 자신의 프로젝트에 config, models, migrrations, seeder라는 폴더가 생성되었을 것이다.

확인해보고, 에러가 난다면 최대한 구글링해보고 문제를 해결해보도록 하자. 생각보다 문제는 쉽게 해결될 것이다.

그래도 해결이 안된다면 여기를 찾아보면서 해결해보자.

그리고 나머지 마이그레이션 취소, 시드 만들기, 스켈레톤 파일 만들기 등은 해보는 것이 좋다. 하지만 이 글에서는 다루지 않는다.

 

이렇게 위에 방식대로 진행했다면 정상적으로 config, models, migrrations, seeder라는 폴더가 생성되고, MySQL DB에 테이블들도 생성이 되었을 것이다.

확인해보도록 하자.

이것으로 모델 생성해서 데이터베이스에 반영하는 것까지 진행해보았습니다.

 

관련 링크 정리

1. Sequelize ORM 공식문서

2. Sequelize - Migrations 문서

'Develop > ORM' 카테고리의 다른 글

TypeORM  (0) 2022.03.08
ORM 알아보기  (0) 2021.04.13
Comments