Sequelize で created_at trueの場合でも自分でcreated_atの値を設定できますか?

はい、Sequelizeでは、createdAtフィールドの値を自分で設定することができます。以下のように行うことができます:

  1. モデルの定義で、createdAtフィールドを無効にします。
const YourModel = sequelize.define('YourModel', {
  // ... other fields
  createdAt: {
    type: DataTypes.DATE,
    defaultValue: DataTypes.NOW,
    allowNull: false,
    field: 'created_at',
    // 以下の行を追加して無効にします
    // get() {
    //   return this.getDataValue('created_at');
    // },
  },
});
  1. createdAtフィールドの値を自分で設定するためのメソッドをモデルに追加します。
YourModel.prototype.setCreatedAt = function (value) {
  this.setDataValue('created_at', value);
};
  1. モデルを使用する際に、setCreatedAtメソッドを使用してcreatedAtフィールドの値を設定します。
const yourInstance = YourModel.build();
yourInstance.setCreatedAt(new Date());

これにより、createdAtフィールドの値を自分で設定することができます。

タイトルとURLをコピーしました