避免 created_at 和 updated_at 被 sequelize 自动生成
Avoid created_at and updated_at being auto generated by sequelize
如何定义提供 created_at 和 updated_at 而不是生成的模型?
我正在从已经有 created_at
和 updated_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,所以,如果没有补丁,现在是不可能的
如何定义提供 created_at 和 updated_at 而不是生成的模型?
我正在从已经有 created_at
和 updated_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,所以,如果没有补丁,现在是不可能的