避免 created_at 和 updated_at 被 sequelize 自动生成

Avoid created_at and updated_at being auto generated by sequelize

如何定义提供 created_at 和 updated_at 而不是生成的模型?

我正在从已经有 created_atupdated_at 字段数据的地方导入数据,我想保留这些数据,而不是在对象 created/updated 通过 sequelize (我们的二级商店)。

我已经尝试了所有可能的模型定义和选项排列来让它工作,但 sequelize 仍然用它自己的时间戳覆盖我的字段:{silent: true},等等...

需要说明的是,输入数据有 createdAt 和 updatedAt,我想使用 sequelize 的 bulkCreate() 等,以便提供的输入值被使用并存储在模型中作为 created_at 和 updated_at 而不是由 sequelize 生成。

这是我当前的模型定义:

const Lead = sequelize.define('lead', {
  objectId: {
    type: Sequelize.STRING,
    field: 'objectId',
    primaryKey: true,
    allowNull: false
  },
  firstName: {
    type: Sequelize.STRING,
    field: 'first_name'
  },
  lastName: {
    type: Sequelize.STRING,
    field: 'last_name'
  },
  phoneNumber: {
    type: Sequelize.STRING,
    field: 'phone_number'
  },
  createdAt: {
    type: Sequelize.DATE,
    field: 'created_at',
  },
  updatedAt: {
    type: Sequelize.DATE,
    field: 'updated_at'
  }
}, {
  freezeTableName: true, // Model tableName will be the same as the model name
  timestamps: false,
  underscored: true
});

选项是

timestamps: false,

其中timestamps写成完全小写

更新:

通过查看 bulkCreate() 函数的代码,it looks that it always updates the timestamps,所以,如果没有补丁,现在是不可能的