避免由sequelize自动生成created_at和updated_at

时间:2016-04-28 06:05:51

标签: node.js postgresql sequelize.js

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

我从某个已经包含created_atupdated_at字段数据的地方导入数据,而不是每当对象由sequelize(我们的辅助商店)创建/更新时生成

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

要清楚,输入数据已经创建了和更新了,我想使用sequelize的bulkCreate()等,这样提供的输入值就会被使用并存储在模型上,如created_at和updated_at,而不是由sequelize生成。 / p>

这是我目前的模型定义:

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
});

1 个答案:

答案 0 :(得分:20)

选项是

timestamps: false,

timestamps写成全小写

<强>更新

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