tutorial principiantes para node libro ejemplos actualizar node.js express migration sequelize.js

node.js - principiantes - ¿Cómo insertar datos iniciales utilizando secuenciales migraciones/semillas?



node js tutorial (3)

Estoy intentando crear mi migración inicial para completar la base de datos de prueba pero no puedo hacer que funcione. Esto es lo que tengo en mi migración:

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

Y me sale este error:

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

Debe haber una manera más fácil de hacer esto. He comprobado otras preguntas de SO, pero la sintaxis ha cambiado en la versión actual de secuela.

ACTUALIZAR

Ok, me di cuenta de mi error: estaba asumiendo que la secuela se haría cargo de las marcas de tiempo. Esto soluciona el problema:

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

Pero todavía me pregunto si esta es la forma correcta de sembrar mi base de datos. ¿Hay alguna manera de hacerlo usando User.create({}) ?


Se podría usar una alternativa: seccionar los dispositivos , podría iniciar sus tablas con datos predeterminados declarados como un archivo json u otro formato.


Se puede utilizar a continuación:

const City = sequelize.define(''city'', { name: { type: Sequelize.STRING }, order_: { type: Sequelize.INTEGER } }); City.sync().then(() => { City.create({ name: ''Neuquen'', order_: 0 }); City.create({ name: ''General Roca'', order_: 1 }); });

O lea sobre "migraciones" en http://docs.sequelizejs.com/en/latest/docs/migrations/


new Date()

también requerido para mysql, es decir

return queryInterface.bulkInsert(''users'', [ { "Forename":"A", "Surname": "User", "UserType":"1", "Email":"[email protected]", "Password":"password", "LastLogin":0, "Tokens": JSON.stringify({"tokens":[]}), "CreatedBy": 999, "CreatedAt": new Date(), "UpdatedAt": new Date() }]);