はじめに
Sails.jsではモデルにcreatedAtとupdatedAtというattributesをデフォルトで持っている。
DB上のテーブルにちゃんとこの名前のカラムがあれば問題は無い。
しかしそれが無い場合は、そんなカラムは無いよ?と怒られる:
ER_BAD_FIELD_ERROR: Unknown column 'user.createdAt' in 'field list'
ER_BAD_FIELD_ERROR: Unknown column 'user.updatedAt' in 'field list'
そんな場合の対処法は2つある。
対処法1:該当するカラムが別名である場合
例えばcreatedAtの代わりにinsert_date、updatedAtの代わりにmodified_dateというカラムを使ってる場合。
このように該当するカラムが別名で存在する場合は、モデルのattributesを次のように設定する:
module.exports = {
attributes: {
createdAt: {
type: 'datetime',
columnName: 'insert_date'
},
updatedAt: {
type: 'datetime',
columnName: 'modified_date'
},
//以下省略
}
//以下省略
};
対処法2:該当するカラムが無い場合
そもそも該当するカラムが無い場合は、models.jsで以下のように設定する:
config/models.js
module.exports.models = {
autoCreatedAt: false,
autoUpdatedAt: false,
//以下、connectionやmigrateの設定
};