본문 바로가기
Coding/Etc

Sequelize.js Incorrect table definition; there can be only one auto column and it must bedefined as a key 오류해결

by Hide­ 2018. 7. 18.
반응형

Sequelize.js로 모델을 정의하고 생성해주려 하는데 다음과 같은 오류가 발생했다.


Unhandled rejection SequelizeDatabaseError: Incorrect table definition; there can be only one auto column and it must bedefined as a key


먼저 내가 시도했던건 아래와 같다.


export const User = sequelize.define('user', {
no: {
type: Sequelize.INTEGER,
autoIncrement: true
},
userid: {
type: Sequelize.STRING,
allowNull: false,
primaryKey: true,
},
userpw: {
type: Sequelize.STRING,
allowNull: false
},
}, {
freezeTableName: true,
underscored: true
})


userid에 Primary Key를 걸어줬기 때문에 no에는 기본적으로 auto_incrment가 걸려있지 않다.

따라서 no에 해당 옵션을 걸어주고 싶었는데 자꾸 오류가 발생했다.

해결방법은 간단하다. unique: true 옵션을 같이 주면 된다.

최종 소스는 아래와 같다.


export const User = sequelize.define('user', {
no: {
type: Sequelize.INTEGER,
autoIncrement: true,
unique: true
},
userid: {
type: Sequelize.STRING,
allowNull: false,
primaryKey: true,
},
userpw: {
type: Sequelize.STRING,
allowNull: false
},
}, {
freezeTableName: true,
underscored: true
})


참고 : http://adbancedteam.tistory.com/149