Ajouter des données dans le script de migration Sequelize?

Comment puis-je append des données à une table dans un script de migration Sequelize? C’est ce que j’ai eu:

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

}

Je l’ai compris. Sequelize est disponible à partir de migration.migrator.sequelize . Il est possible de faire quelque chose comme ça:

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

Dans la dernière version de Sequelize, cela a changé et il devrait maintenant être

 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 fait, ce n’est pas une bonne idée de simplement lancer une requête. queryInterface a create () et bulkCreate () maintenant.

 'use ssortingct'; 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, {}); } }; 

Ceci retourne une promesse attendue par sequelize-cli.

Source (adapté): https://github.com/sequelize/sequelize/issues/3210