200619 TIL :: Sequalize-cli 연습 (작성중)

2020. 6. 19. 17:09Database

# 포스팅에 작성한 내용들은 아래 링크의 튜토리얼을 기반으로 연습한 내용입니다.

 

블로그:

https://velog.io/@jeff0720/Sequelize-CLI%EB%A5%BC-%EC%82%AC%EC%9A%A9%ED%95%98%EC%97%AC-%EA%B0%84%EB%8B%A8%ED%95%9C-User-API-%EB%A7%8C%EB%93%A4%EA%B8%B0-vdjpb8nl0k

 

 

 

# sequalize-cli 설치 및 초기 설정

 

1. sequalize-cli를 사용하기 위해 필요한 패키지들을 설치 :  sequalize, sequalize-cli, mysql2

$ npm install --save sequelize sequelize-cli mysql2

 

 

설치가 제대로 이루어졌다면 아래의 명령어를 입력했을 때, 사진과 같은 화면이 나오게 된다.

$ ./node_modules/.bin/sequelize

 

sequelize 명령어를 사용했을 때의 터미널

 

 

2. sequalize-cli를 사용하고 있는 현재 프로젝트를 초기화

$ ./node_modules/.bin/sequelize init

 

sequalize init을 실행했을 때의 터미널

 

초기화가 완료되었다면 config, migrations, models, seeders 폴더가 새로 생성된다.

 

생성된 파일들

 

3. config/config.js 파일을 내 환경에 맞게 수정

 

수정한 config/config.js 파일

 

간단한 실습이므로 development만 남겨 두었고, 비밀번호와 생성될 데이터베이스 이름 부분을 수정하였다.

 

 

# 데이터베이스, 모델 생성 및 migration

 

1. 데이터베이스 생성

$ ./node_modules/.bin/sequelize db:create

 

위 명령어를 이용해 데이터베이스를 생성하면, config.js에서 지정해 주었던 이름대로 데이터베이스가 생성된다.

 

sequalize create 명령어를 입력했을 때의 터미널

 

mysql 서버에서 지정된 이름으로 데이터베이스가 생성된 것을 확인할 수 있다. 

 

2. 모델 정의 :  상단 블로그에서 명령어를 가져왔다.

$ node_modules/.bin/sequelize model:generate --name User --attributes userId:string,name:string,engName:string
1. node_modules/.bin/sequelize model:generate => model을 만드는 기본 명령어
2. --name User => model의 이름을 설정
3. --attributes userId:string,name:string,engName:string 
     => model이 가지게 될 속성명, 자료형을 설정 

 

모델 정의가 끝났다면 models 폴더 안에 지정해준 이름의 model 파일이 생성되고, migration 폴더 안에도 새 파일이 생성된다.

 

생성된 파일들

 

models/user.js

models/user.js 안에는 Users라는 테이블의 스키마를 정의하는 sequalize orm 코드가 들어 있다.

 

migrations/create-user.js

migrations/create-user.js 안에는 Users라는 테이블을 실질적으로 만들어 주기 위한 코드들이 들어 있다.

 

 

3. migration :  아래의 명령어를 사용하여 migration을 실행한다.

$ ./node_modules/.bin/sequelize db:migrate

 

migration을 실행했을 때의 터미널

 

migration이 잘 실행되었다면 mysql 서버에서 새 테이블과 컬럼들이 생성된 것을 확인할 수 있다.

 

Users 테이블과 설정해준 컬럼들이 생성되었다.

 

 

# sequalize seed로 데이터 추가하기

 - 추후 추가 예정

 

 

 

 

'Database' 카테고리의 다른 글

sql, nosql  (0) 2020.06.22
mysql orm sequalize migration  (0) 2020.06.17