TIL # 2022.03.14

kdobro_dev·2022년 3월 14일
0

TIL (Today I Learned)

목록 보기
40/56
post-thumbnail

📝오늘 배운 내용

1. Sequelize 설치

https://sequelize.org/

npm install --save sequelize

2. Sequelize CLI 설치

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

npm install --save-dev sequelize-cli

공식 문서 외에 아래의 명령어를 통해 명령의 종류를 파악할 수 있다.

npm sequelize-cli --help

3. ORM 설정

cli를 통해 ORM을 잘 사용할 수 있도록 bootstraping을 해줘야 한다.
성공적으로 bootstraping이 끝났다면 아래와 같은 파일 및 폴더들이 생성 된다.

https://sequelize.org/master/manual/migrations.html

npx sequelize-cli init

config/config.json
models/
migrations/
seeders/

4. MySql 접속 설정

config/config.json 파일의 내용을 확인해보면 이렇게 나누어져 있는 것을 볼 수 있다.
나의 데이터베이스 환경에 맞게 username 혹은 password를 변경해주면 된다.

{
  "development": {
    "username": "root",
    "password": null,
    "database": "database_development",
    "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"
  }
}

5. Model 생성

내가 설정하려고 하는 model의 name과 attributes들을 각각 설정해주고 model을 생성한다.
나는 model name은 url, url과 title의 타입은 string, visits의 타입은 integer로 설정하였다.
즉, url은 model/url.js가 될 것이고, url,title,visits는 테이블의 필드명이 될 것이다.

npx sequelize-cli model:generate --name url --attributes url:string,title:string,visits:integer

6. 컬럼 설정

만약, 내가 visits컬럼의 기본값으로 0을 설정해주고 싶다면 models/url.js 파일에서 아래와 같이 visits 값을 객체형태로 넣어주면 된다.

url.init({
  url: DataTypes.STRING,
  title: DataTypes.STRING,
  visits: {
    type: DataTypes.INTEGER,
    defaultValue: 0
  }
}, {
  sequelize,
  modelName: 'url',
});

그리고 migrations폴더 안에 있는 파일의 visits 부분도 동일한 값을 넣어줘야한다.

visits: {
  type: Sequelize.INTEGER,
  defaultValue: 0
}

7. 마이그레이션

마이그레이션까지 완료를 하면, 해당 데이터베이스에 내가 설정한 테이블과 컬럼들이 생성이 된다.
npx sequelize-cli --help 에서도 볼 수 있듯이 마이그레이션을 해줘야 보류/대기 중이던 마이그레이션에 내용들을 실행하게 된다.

npx sequelize-cli db:migrate
profile
do your best at any moment

0개의 댓글