[개발] Sequelize 를 이용한 autoincrement 컬럼 사용
안녕하세요 @realmankwon 입니다.
DB table의 autoincrement 컬럼은 값을 넣지 않아도 자동으로 값이 입력되게 되어 있습니다.
하지만 Sequelize 를 사용하니 값을 입력하지 않았을때 다음과 같은 에러가 발생하였습니다.
ValidationError [SequelizeValidationError]: notNull Violation: id cannot be null
기존에도 사용을 했었는데 왜 에러가 나는지 몰라서 기존 테이블의 스키마를 보니 해당 값을 선언하지 않고 사용하고 있었습니다.
그렇게 사용해도 되지만 id 가 PK 이기 때문에 스키마에서 제외시키면 PK 을 이용한 조회가 불가능해집니다.
Sequelize에 설정이 있을 것 같아서 찾아보니 스키마에 autoincrement 설정을 해야하는군요.
const Model = sequelize.define('model', {
id: {
type: Sequelize.INTEGER,
primaryKey: true,
autoIncrement: true,
},
// 다른 필드들 ...
});
여기서 autoIncrement 속성이 true로 설정되어 있으므로 Sequelize는 자동 증가 값을 생성하여 새로운 레코드가 생성될 때마다 해당 필드에 할당합니다.