web-dev-qa-db-ja.com

created_atとupdated_atがsequelizeによって自動生成されるのを避けます

Created_atとupdated_atが生成されるのではなく提供されるモデルをどのように定義しますか?

Sequelize(2次ストア)によってオブジェクトが作成/更新されるたびに生成するのではなく、保存したいcreated_atおよびupdated_atフィールドのデータがすでにある場所からデータをインポートしています。

私はこれを機能させるためにモデル定義とオプションの可能なすべての順列を試してみましたが、それでも自分のフィールドを独自のタイムスタンプで上書きします:{silent: true}など...

明確にするために、入力データはcreatedAtおよびupdatedAtであり、提供された入力値が使用され、sequelizeによって生成されるのではなく、created_atおよびupdated_atとしてモデルに格納されるように、sequelizeのbulkCreate()などを使用したいと思います。

これは私の現在のモデル定義です:

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
});
11
Tyler Brock

オプションは

_timestamps: false,
_

timestampsが記述されている場所完全に小文字

更新:

bulkCreate()関数のコードを見ると、 タイムスタンプは常に更新されているように見えます なので、パッチがないと、これは現在不可能です。

25