node.js – 一个迁移文件中的多个迁移语句

前端之家收集整理的这篇文章主要介绍了node.js – 一个迁移文件中的多个迁移语句前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我试图在单个迁移文件中执行多个迁移语句,以便一次更改同一个表的多个列.

我想知道我是否以书写方式进行,或者是否有更好,更合适的方法

迁移代码

module.exports = {
    up: function(queryInterface,Sequelize,done) {

        queryInterface.changeColumn('users','name',{
            type: Sequelize.STRING,allowNull: false,require: true,unique: true
        }).success(function() {
            queryInterface.changeColumn('users','address',{
                type: Sequelize.STRING,unique: true
            }).success(function() {
                queryInterface.changeColumn('users','city',{
                    type: Sequelize.STRING,unique: true
                }).success(function() {
                    queryInterface.changeColumn('users','state',{
                        type: Sequelize.STRING,defaultValue: "ncjnbcb"
                    });
                    done();
                });
            });
        });
    }
};

但是我面临一个错误

TypeError: undefined is not a function

由于我在迁移中找不到任何调试错误方法,如果有人帮助我解决它或者如果可能的话,告诉我们如何找出迁移中的错误的方式将是很好的.

解决方法

你的TypeError可能是因为你没有返回任何东西. docs说每个迁移函数都应该返回一个Promise.没有提到完成回调.

为此,请尝试以下方法

return Promise.all([
  queryInterface.changeColumn...,queryInterface.changeColumn...
]);

猜你在找的Node.js相关文章