续集迁移脚本抛出errorUnhandled拒绝SequelizeBaseError:SQLITE_ERROR:没有这样的表

我已经写了sequelizer的迁移javascript来改变现有的列在一个表中,但是当我运行命令sequelizer db:migrate ,它给出的错误

== 20170212050240-alter_col_tag_subject: migrating ======= Unhandled rejection SequelizeBaseError: SQLITE_ERROR: no such table: subject_tags == 20170212050240-alter_col_tag_subject: migrated (0.241s)

这里是迁移文件的代码

 'use strict'; module.exports = { up: function (queryInterface, Sequelize) { return [ queryInterface.changeColumn( 'subject_tags', 'tag', { type: Sequelize.STRING, unique: true, validate: { len: [1, 250] } } ), queryInterface.changeColumn( 'subject_tags', 'tag_description', { type: Sequelize.STRING, allowNull: false, validate: { len: [1, 250] } } ), queryInterface.changeColumn( 'subject_tags', 'associated_subject', { type: Sequelize.STRING, allowNull: false, validate: { len: [1, 250] } } ) ]; }, down: function (queryInterface, Sequelize) { } }; 

有谁知道我为什么遇到这个问题?

在做了大量的谷歌search之后,我在github的讨论中find了答案

引用sdepold

大家好。 迁移function应该返回承诺。 所以如果你想在迁移中做很多事情,只要返回一个如下所示的链接:

 return queryInterface.removeColumn('users', 'email').then(function () { return queryInterface.removeColumn('users', 'encryptedPassword'); }); 

因此是正确的代码

 module.exports = { up: function (queryInterface, Sequelize) { return queryInterface.changeColumn( 'subject_tags', 'tag', { type: Sequelize.STRING, unique: true, validate: { len: [1, 250] } } ). then( function () { return queryInterface.changeColumn( #....... ); }).then( function () { return queryInterface.changeColumn( #....... ); }) ; 

希望这个答案的问题。