본문 바로가기

Database/Sequelize

시퀄라이즈 모델 (Model Basics)

시퀄라이즈에서 모델이라는 개념이 생소하다.

데이터베이스의 테이블을 객체화 시킨 거라고 생각하면 쉽다.

모델을 생성하려면 다음을 입력한다.

 

const { Sequelize, DataTypes } = require('sequelize');

const sequelize = new Sequelize(/* ... */);

 

const User = sequelize.define('User', {

    name: {

        type: DataTypes.STRING,

        allowNull: false

    },

    email: {

        type: DataTypes.STRING

    }

}, {

    // Other model options go here

});

 

여기서 생성한 User를 가지고 테이블을 다룰 수 있다.

다만 User 자체가 데이터베이스의 테이블은 아니다.

테이블을 다루기 위한 인스턴스일 뿐이다.

 

실제로 시퀄라이즈로 테이블을 생성하려면 다음을 입력해야 한다.

User.sync();

이 이름의 테이블이 존재하지 않는다면 테이블을 생성한다.

 

헷갈리게도 시퀄라이즈에서 테이블을 생성하면 테이블의 이름을 복수형태로 바꿔준다.

실제로 데이터베이스의 테이블 이름을 보면 Users로 되어 있다.

복수형으로 표현하지 못하는 것은 또 안 해준다고 하는데...

맘에 안 든다면 위 옵션 객체에 다음을 넣어주자.

freezeTableName: true

 

데이터 타입이라든지 나머지 칼럼 설정에 관한 내용은 매뉴얼을 참고하자.

 

https://sequelize.org/master/manual/model-basics.html