: ORM은 Object - Relational Mapping 의 약자다.
이 ORM은 JS의 객체와 database(mysql) 사이에 ORM이 위치하하여, DB의 레코드(entities)에 접근 할때 마치 JS의 객체 또는 클래스처럼 다룰 수 있다.
다시 말해, ORM 은 JS와 DB사이에 위치한 통역사 역할을 한다고 말 할 수 있다.
: Sequelize는 ORM중 하나이다. nodeJs환경에서 DB에게 mysql문을 쉽게 날릴 수 있게 도와주는 라이브러리이다.
설치하기
npm install --save sequelize
Sequelize CLI는 The Sequelize command line interface의 약자다. 이름에서 유추해 볼 수 있듯이, 터미널에서 사용하던 명령어처럼 명령어를 작성해 데이터베이스에게 sql문을 날릴 수 있게 해준는 것이다.
install하기
npm install --save-dev sequelize-cli
init 하기
: 새로운 프로젝트를 만들기 위해서 init을 해야한다.
npx sequelize-cli init
init을 하면, 4가지 파일이 생성되고, 역할은 아래와 같다.
config - config파일은 CLI한테 어떻게 DB와 연결할건지를 말해주는 파일이다.
models - 프로젝트에 사용될 모든 모델이 담긴다.
migrations - migrate를 한 파일들이 담긴다.
seeders - seed파일들이 담긴다.
config파일은 아래와 같이 생겼다. 여기서 develop,test,production의 역할은 다르다. 먼저 develop은 우리가 개발 할 때 사용하는 부분이다. test는 테스트를 할때, production은 배포할때이다.
그래서 역할에 맞게 DB이름, 패스워드, 유저이름 등을 적절하게 적어주면된다.
{ "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" } }
model생성하기
npx sequelize-cli model:generate --name User --attributes firstName:string,lastName:string,email:string,password:integer
위와 같이 적게 되면 firstName, lastName, email, password의 필드를 만들고, 데이터 타입도 지정해줄 수 있다.(쉽다 ^^)
migrate하기
npx sequelize-cli db:migrate
migrate가 무엇인가하면, 이전 단계에서는 우리는 모델을 만들었지만, 이 모델을 DB에 넣지 않았다. 그래서 이 모델을 DB에 넣기 위해서 우리는 migrate를 해주어 DB에서 우리가 만든 User라는 테이블을 볼 수 있다.
migrate취소하기
만약 잘 못된 테이블을 만들었다면 취소도 해줄 수 있어야한다.
npx sequelize-cli db:migrate:undo