노드숙련강의 4-3

·2022년 12월 21일
0

study

목록 보기
20/81
post-thumbnail

Sequelize 설정

모듈 설치

npm i sequelize mysql2 -S
npm i sequelize-cli -D
  • sequelize는 우리가 Node.js 에서 sequelize를 사용할 수 있게 해요
  • mysql2는 Node.js 에서 Sequelize를 이용해 MySQL을 더욱 쉽게 조작할 수 도록 도와주는 패키지에요
    만약 Sequelize를 사용할 때, mysql2 패키지가 설치되어 있지 않으면 에러가 발생합니다
  • sequelize-cli는 우리가 Sequelize를 조금 더 쉽게 사용하도록 도와주는 도구를 설치하는 명령어예요

Sequelize 사용 준비

npx sequelize init
  1. models 폴더 안에 index.js가 생성됨
    우리가 구현할 sequelize 모델을 편리하게 사용할 수 있게 해주는 파일이니 절대 지우면 안됨.
  2. config 폴더 안에 config.json 파일이 생성됨
    이 파일을 열어보면 데이터베이스에 연결하기 위한 설정 데이터가 JSON 형식으로 들어가있음.
  3. migrations 폴더가 생성됨(빈폴더)
  4. seeder 폴더가 생성됨(빈폴더)

config/config.json 파일 수정하기

development, test, production 3개의 키가 존재할텐데 우린 지금은 development 안에 있는 내용만 수정

// config/config.json
{
  "development": {
    "username": "root",
    "password": "비밀번호",
    "database": "database_development",
    "host": "express-database.cqif5bxbzyvd.ap-northeast-2.rds.amazonaws.com",
    "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"
  }
}

password가 null 이던것을 AWS RDS에서 설정한 마스터 암호로 바꿔주고, host도 rds의 엔드 포인트로 바꾸어 줌. 이렇게 해야 우리가 대여한 데이터베이스 서버에 Sequelize를 이용해 접속할 수 있습니다.

지금 우리는 development를 수정해서 사용하지만, 여러 가지 환경 별로 db연결할 때 나머지 test, production부분도 바꾸어서 사용가능

데이터베이스 생성하기

npx sequelize db:create
//(NODE_ENV=test npx sequelize db:creste하면 test에 설정된 값으로 생성가능)

지금 언급하는 데이터베이스 는 일반적으로 "DB 서버" 또는 "데이터베이스"라고 부르는 MySQL 서버와는 다른 MySQL이 정의해둔 가상의 개념입니다.
하나의 서버에 여러개의 가상의 데이터베이스를, 데이터베이스 안에 여러개의 테이블을 생성해서 관리하는 방식.
=> "database_development"생성됨(위에서 지정해둔 이름으로 생성)
정리하자면 1개의 MySQL 서버 안에 n개의 데이터베이스가 존재할 수 있고,
1개의 데이터베이스 안에 n개의 테이블이 존재할 수 있습니다.

profile
개발자 꿈나무

0개의 댓글