TIL

23/11/10 TIL __ 시퀄라이저 aws rds 테이블 만들기.

GABOJOK 2023. 11. 10. 23:43

 

 

개인과제가 시작되었다. 

node와 express, sequelize를 이용해 회원 로그인을 해야 이용할 수 있는 쇼핑몰 서버를 구축하는 과제였다. 

sequelize에 대한 강의는 들었지만 감이 잘 잡히지 않았다. 

처음에는 좀 많이 막막했는데, 할 수 있는 것부터 차근 차근 해보기로 했다. 

 

 

🚗 Sequelize

 

  • 쿼리문을 작성하지 않고도, 자바스크립트 문법으로 데이터베이스를 조작 할 수 있어 편리한 도구이다.
    # express, sequelize, mysql2 라이브러리를 설치합니다.
    npm install express sequelize mysql2
    
    # sequelize-cli, nodemon 라이브러리를 DevDependency로 설치합니다.
    npm install -D sequelize-cli nodemon
    
    # 설치한 sequelize를 초기화 하여, sequelize를 사용할 수 있는 구조를 생성합니다.
    npx sequelize init

 

 

여기까지 하면 models 폴더 안에 index.js 파일이 생긴다. 

뿐만 아니라 config 폴더 안에 config.json , migration 폴더, seeder 폴더가 생성된다. 

이때 주의할 점은 index.js 파일을 함부로 건들지 말자.

원상 복구를 해도, 작동하지 않아서 npx sequelize init을 통해 진행했다. 

이제 Sequelize와 RDBMS 연결을 해보자.

 

config.json 폴더 안에 development로 기본 셋팅이 되어 있다. 해당 객체를 보면, 설정을 할 수 있는데,

1. username: MySQL에서 사용하는 사용자 이름
2. password: MySQL에서 사용하는 사용자 암호
3. database: Sequelize와 연결할 DB명
    - DB가 존재하지 않다면 sequelize-cli 를 이용해 생성할 수 있습니다.
4. host: Sequelize와 연결할 MySQL의 엔드포인트(주소)
5. dialect: Sequelize와 연결할 DB 엔진

 

이렇게 입력을, 알맞게 작성해 주면 된다.

그리고, 이런 명령어를 입력해 주면

 

npx sequelize db:create

 

방금 전에 config.json 의 database에 설정된 이름으로 db를 생성한다. 

그럼 vscode 에서 왼쪽 아래에 mysql 탭을 누르면 새로 생성된 db를 확인할 수 있다. 

 

 

자 그럼 이제 migration, model에 대해 잠깐 보자.

migration : MySQL에 테이블 생성한다. 
model : MySQL과  Express 프로젝트를 연결한다. 

 

 

migrations 폴더를 만들껀데, 아래의 명령어를 터미널에 입력한다. 

npx sequelize model:generate --name 테이블이름 --attributes title:string,content:string,password:string

title, content, password  라는 항목으로 만드는 예시일 뿐이니 

각자 상황에 맞게 입력하면 된다. 

 

 

이렇게 입력하면 migration 폴더에 파일이 쫙 생긴다. 

이제 테이블을 만들어 볼껀데, 

 npx sequelize db:migrate

 

이렇게 입력하면, vscode의 왼쪽 하단 MYSQL 탭에 방금 만든 테이블이 생성되어 있다. 

이제 migration 파일에 원하는 속성값들을 정의하면 된다. 

 

 

혹시 가장 최근에 실행한  db:migrate를 취소하려면, 아래 명령어를 입력하면 된다. 

npx sequelize db:migrate:undo

 

 

 

이렇게 생성한 후, 이제 model 폴더에 migration 테이블을 연결할 model 파일을 만들어 주자. 

model은 migration 과 동일한 문법을 사용하기 때문에, 복붙하면서 만들면 된다. 

만약 에러가 난다면,

model파일에 type을 DataTypes.INTEGER 로 바꿔보길 권장한다. 

 

여기까지 한 후 이제 제대로 구현이 되었는지 확인을 해보자. 

vscode 왼쪽 하단을 보면 아래에 생성된  db 테이블을 클릭 후 마우스 우클릭 한다. 

그럼 select top 1000이 뜨는데 일단 클릭.

 

 

그리고 적혀있는걸 지우고,  아래와 같이 입력해보자.

desc 테이블명

 

그럼 짠 하고 테이블을 정의한 것들이 보일거다. 

이렇게!!

 

 

 

 

 

그리고 나서 creat 를 통해 데이터 집어넣으면 끝!!!

그런데.... 문제가 발생했다.

 

❗️❗️❗️ create is not a function  에러 발생 ❗️❗️❗️

이 부분은 시간이 너무 늦어 해결하지 못했다. 내일 시도해 봐야 겠다.