¿Agregar datos en Sequelize script de migración?

¿Cómo puedo agregar datos a una tabla en una secuencia de comandos de migración de Sequelize? Esto es lo que conseguí:

module.exports = { up: function(migration, DataTypes, done) { migration.createTable( 'person', { name: DataTypes.STRING, age: DataTypes.INTEGER }, { charset: 'latin1' // default: null } ); // I want to insert person and age. migration.insert(???); done() }, down: function(migration, DataTypes, done) { migration.dropTable('queue'); done() } 

}

Me lo imaginé. Sequelize está disponible en migration.migrator.sequelize . Es posible hacer algo como esto:

 up: function (migration, DataTypes, done) { migration.createTable( 'Person', { name: DataTypes.STRING, age: DataTypes.INTEGER, } ).success(function () { migration.migrator.sequelize.query("insert into person (name, age) values ('Donald Duck', 60)"); done(); }); }, down: function (migration, DataTypes, done) { migration.dropTable( 'Person' ).then(function() { done(); }) } 

En la última versión de secuela, esto ha cambiado y ahora debería estar

 migration.createTable( 'Person', { name: DataTypes.STRING, age: DataTypes.INTEGER, } ).then(function () { migration.sequelize.query("insert into person (name, age) values ('Donald Duck', 60)"); done(); }); 

En realidad no es una buena idea simplemente ejecutar una consulta. queryInterface tiene create () y bulkCreate () ahora.

 'use strict'; module.exports = { up: function(queryInterface, Sequelize) { return queryInterface.bulkInsert('roles', [{ label: 'user', createdAt: new Date(), updatedAt: new Date() }, { label: 'admin', createdAt: new Date(), updatedAt: new Date() }]); }, down: function(queryInterface, Sequelize) { return queryInterface.bulkDelete('roles', null, {}); } }; 

Esto devuelve una promesa como se espera por sequelize-cli.

Fuente (adaptado): https://github.com/sequelize/sequelize/issues/3210