배씨의 개발일지

VS CODE - mysql Sequelize 본문

웹 개발

VS CODE - mysql Sequelize

용찬 2023. 7. 12. 21:14

Sequelize란

ORM(Object Relational Mapping)으로써 Javascript객체(Object)와 데이터베이스의
관계(Relation)을 연결(Mapping) 해주는 도구이다.

 

VS CODE에서 mysql을 sequelize하기

mysql과 sequelize npm 설치하기
=> npm install express sequelize mysql2

설치한 sequelize를 초기화 후 구조 생성
=> npx sequelize init 

npx sequelize init 후 폴더 구조

├── models
│   └── index.js
├── config
│   └── config.json
├── migrations
├── seeders
├── package-lock.json
└── package.json

 

// config/config.json
{
  "development": {
    "username": "내 유저 이름",
    "password": "비밀번호",
    "database": "만드려하는 DB의 이름",
    "host": "아마존 RDS의 HOST",
    "dialect": "mysql" // <= 사용하려는 DB
  },
  "test": {
    // ...
  },
  "production": {
    // ...
  }
}

 

config.json 파일을 토대로 DB 생성하기 

npx sequelize db:create

 

Posts 테이블을 sequelize로 생성해주기

npx sequelize model:generate --name Users--attributes title:string,content:string,password:string
--name = 내가 만드려는 DB내 테이블의 이름
--attributes = 내가 만드려는 DB 테이블내의 컬럼의 이름, 타입

 

sequelize model:generate를 해준 뒤 폴더 구조
├── models
│   ├── index.js
│   └── posts.js
├── config
│   └── config.json
├── migrations
│   └── 20230118144300-create-posts.js
├── seeders
├── package-lock.json
└── package.json

 

 

// migrations/posts.js

  UserId: {
    allowNull: false, // NOT NULL
    type: Sequelize.INTEGER,
    references: {
      model: 'Users', // Users 모델 참조
      key: 'userId', // Users 모델의 userId 참조
    },
    onDelete: 'CASCADE', // 만약 Users 모델의 userId가 삭제되면, Posts 모델의 데이터도 같이 삭제
  },
  
  -----------------------------------------------------------------------------------------

이런식으로 sequelize를 한 후 생성된 migration 파일에 관계 설정

 

관계 설정 후 DB에 적용 시키기
=> npx sequelize db:migrate

 

 

이렇게 sequelize를 해주면 VS CODE 내에서 DB를 이용할 준비가 모두 끝나게 됩니다!

'웹 개발' 카테고리의 다른 글

RDBMS 정규화  (0) 2023.08.18
NoSQL VS RDBMS  (0) 2023.08.16
나만의 뉴스피드 만들기  (3) 2023.07.11
나만의 블로그 만들기  (0) 2023.07.11
node.js 프로젝트 해야될 것들 DB저장까지  (0) 2023.06.29
Comments