如何使用sequelize migrations / seeds插入初始数据?

我试图创build我的初始迁移填充testing数据库,但我不能得到它的工作。 这就是我在迁移中所拥有的:

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

我得到这个错误:

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

必须有一个更简单的方法来做到这一点。 我已经检查了其他的SO问题,但是在当前版本的sequelize中语法已经改变了。

UPDATE

好吧,我意识到我的错误:我假设续集会照顾时间戳。 这解决了这个问题:

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

但我仍然想知道这是否是种子我的数据库的正确方法。 有没有办法做到这一点使用User.create({})

一个替代scheme可以使用: sequelize fixtures ,你可以启动你的表默认数据声明为JSON文件或其他格式。

你可以使用next:

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

或者阅读http://docs.sequelizejs.com/en/latest/docs/migrations/上的 “迁移”

 new Date() 

也需要为MySQL,即

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