err : Unknown cloumn 'Item.createdAt' in Fidel list'
item 테이블에 createdAt가 없는데 자꾸 저 해당 에러가 떴다.
// models/item.js
'use strict';
const {
Model
} = require('sequelize');
module.exports = (sequelize, DataTypes) => {
class Item extends Model {
static associate(models) {
}
}
Item.init({
title: DataTypes.STRING,
price: DataTypes.INTEGER,
photo: DataTypes.STRING,
description: DataTypes.STRING,
endTime: DataTypes.DATE,
winnerId: DataTypes.INTEGER,
isClosed: DataTypes.BOOLEAN,
city: DataTypes.STRING
}, {
sequelize,
modelName: 'Item',
});
return Item;
};
내 Item 속성들을 보면 createdAt가 없다
그와 같은 속성을 가진 endTime가 있다.
그래서 속성만 보고 createdAt를 달라고 판단하는 것 같았다.
그래서 스택오버플로우를 찾아봤다.
해결방법
데이터베이스와 노드를 연결해주는 config.json 에
"host": "127.0.0.1",
"dialect": "mysql",
"define": {
"timestamps": false
}
define: { timestamps: false }
이걸 추가해줬고, 해결되었다.
약간 임시방편으로 막는 것 같지만, 이런 방법이라도 있어서 정말 다행이다.
그래서 해결방법으로 넣었던 아래 코드를 다시 지웠다.
"define": {
"timestamps": false
}
해결방법
config 에 설정하면 다른 createdAt도 영향을 받아서
각각 createdAt 이 필요없는 모델에 추가해줬다.
아래 예시
'use strict';
const {
Model
} = require('sequelize');
module.exports = (sequelize, DataTypes) => {
class Seller_item extends Model {
static associate(models) {
}
}
Seller_item.init({
userId: DataTypes.INTEGER,
itemId: DataTypes.INTEGER
}, {
timestamps: false, // 여기 추가해줬다.
sequelize,
modelName: 'Seller_item',
});
return Seller_item;
};