Comment insérer des données initiales à l'aide de sequelize migrations/graines?

Je suis en train de créer mon premier départ pour peupler la base de données de test, mais je ne peux pas le faire fonctionner. C'est ce que j'ai dans ma migration:

'use strict';

module.exports = {
  up: function (queryInterface, Sequelize) {
    return [
      queryInterface.bulkInsert('Users', [
        { username: "user1" },
        { username: "user2" }
    ])];
  },

  down: function (queryInterface, Sequelize) {
    return queryInterface.dropTable('Users');
  }
};

Et j'obtiens cette erreur:

== 20151024144833-create-conjugation: migrating =======
{ [SequelizeUniqueConstraintError: Validation error]
  name: 'SequelizeUniqueConstraintError',
  message: 'Validation error',
  errors: [],
  fields: [] }

Il doit y avoir un moyen plus facile de le faire. J'ai vérifié les autres AINSI en question, mais la syntaxe a changé dans la version actuelle de sequelize.

Mise à JOUR

Ok, j'ai compris mon erreur: j'étais en supposant que sequelize prendrait soin de l'horodatage. Cette solution résout le problème:

up: function (queryInterface, Sequelize) {
  console.log(User);
  return [
    queryInterface.bulkInsert('Users', [
      { username: "user1", createdAt: Date.now(), updatedAt: Date.now() },
      { username: "user2", createdAt: Date.now(), updatedAt: Date.now() }
    ])
  ];
}

Mais je suis encore à se demander si c'est la bonne façon de semences de ma base de données. Est-il un moyen de le faire en utilisant User.create({})?

  • J'ai eu du mal avec Date.now() besoin de remplacer avec new Date(). En utilisant SQLite, il n'a pas été possible d'interroger la base de données, puisque le temps a été enregistré dans le mauvais format (Uncaught TypeError: date.indexOf is not a function dans sequelize/lib/dialects/sqlite/data-types.js:28:14)
InformationsquelleAutor nachocab | 2015-10-24