在Sequelize迁移脚本中添加数据?

如何将数据添加到Sequelize迁移脚本中的表中? 这是我得到的:

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

}

我想到了。 Sequelize可以从migration.migrator.sequelize中获得 。 有可能做这样的事情:

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

在最新版本的续集中,这已经改变,现在应该是

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

其实这不是一个好主意,只是运行一个查询。 queryInterface现在具有create()和bulkCreate()。

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

这就像sequelize-cli预期的那样回报了一个承诺。

来源(改编): https : //github.com/sequelize/sequelize/issues/3210