LoginSignup
2
3

More than 5 years have passed since last update.

Sails.jsでcreatedAtとupdatedAtを切る方法

Posted at

はじめに

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の設定
};
2
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
3