web-dev-qa-db-fra.com

Évitez que created_at et updated_at ne soient générés automatiquement par suite

Comment définir un modèle pour lequel created_at et updated_at sont fournis plutôt que générés?

J'importe des données d'un endroit contenant déjà des données pour created_at et updated_at champs que j'aimerais conserver plutôt que de générer à chaque fois que l'objet est créé/mis à jour par sequelize (notre magasin secondaire).

J'ai essayé toutes les permutations possibles de la définition du modèle et des options pour que cela fonctionne et je continue à écraser mes champs avec ses propres horodatages: {silent: true}, etc...

Pour être clair, les données d'entrée ont crééAt et mis à jourAt et j'aimerais utiliser le bulkCreate () de sequelize, etc. de sorte que les valeurs d'entrée fournies soient utilisées et stockées sur le modèle en tant que created_at et updated_at plutôt que générées par sequelize.

Voici ma définition actuelle du modèle:

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

L'option est

timestamps: false,

timestamps est écrit entièrement en minuscules

Mise à jour:

En regardant le code de la fonction bulkCreate(), il semble qu'il met toujours à jour les horodatages , donc, sans patch, ce n'est pas possible pour le moment

25
Tudor Constantin