npm install --save sequelize
Sequleize-cli 는 마이그레이션을 할 수 있도록 돕는 툴이며, CLI에서 모델을 생성해 주거나, 스키마 적용을 할 수 있도록 도와준다.
npm install --save-dev sequelize-cli
공식 문서 외에 아래의 명령어를 통해 명령의 종류를 파악할 수 있다.
npm sequelize-cli --help
cli를 통해 ORM을 잘 사용할 수 있도록 bootstraping을 해줘야 한다.
성공적으로 bootstraping이 끝났다면 아래와 같은 파일 및 폴더들이 생성 된다.
https://sequelize.org/master/manual/migrations.html
npx sequelize-cli init
config/config.json
models/
migrations/
seeders/
config/config.json 파일의 내용을 확인해보면 이렇게 나누어져 있는 것을 볼 수 있다.
나의 데이터베이스 환경에 맞게 username 혹은 password를 변경해주면 된다.
{
"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의 name과 attributes들을 각각 설정해주고 model을 생성한다.
나는 model name은 url, url과 title의 타입은 string, visits의 타입은 integer로 설정하였다.
즉, url은 model/url.js가 될 것이고, url,title,visits는 테이블의 필드명이 될 것이다.
npx sequelize-cli model:generate --name url --attributes url:string,title:string,visits:integer
만약, 내가 visits컬럼의 기본값으로 0을 설정해주고 싶다면 models/url.js 파일에서 아래와 같이 visits 값을 객체형태로 넣어주면 된다.
url.init({
url: DataTypes.STRING,
title: DataTypes.STRING,
visits: {
type: DataTypes.INTEGER,
defaultValue: 0
}
}, {
sequelize,
modelName: 'url',
});
그리고 migrations폴더 안에 있는 파일의 visits 부분도 동일한 값을 넣어줘야한다.
visits: {
type: Sequelize.INTEGER,
defaultValue: 0
}
마이그레이션까지 완료를 하면, 해당 데이터베이스에 내가 설정한 테이블과 컬럼들이 생성이 된다.
npx sequelize-cli --help 에서도 볼 수 있듯이 마이그레이션을 해줘야 보류/대기 중이던 마이그레이션에 내용들을 실행하게 된다.
npx sequelize-cli db:migrate