gpt4 book ai didi

node.js - Sequelize迁移错误

转载 作者:搜寻专家 更新时间:2023-11-01 00:07:54 25 4
gpt4 key购买 nike

我正在使用 Sequelize 2.0.0-rc3,但我遇到了一个错误;似乎我正在正确编写迁移,但在尝试运行它时遇到错误。我在后端使用 Postgresql。一切似乎都很好;这是一个新的、孤立的问题。 Document 表和 id 列存在(在之前的迁移中创建它,但发现它不是自动递增的 id;因此尝试创建此迁移以添加自动递增)。

var p = require('bluebird');

module.exports = {
up: function (migration, DataTypes, done) {
var promises = [];
promises.push(
migration.changeColumn(
'Document',
'id',
{
type: DataTypes.INTEGER,
primaryKey: true,
autoIncrement: true,
allowNull: false
}
));
p.all(promises).then(done.bind(null, null)).catch(function (err) {
console.error('Migration Failed: ', err);
done(err);
});

},

down: function (migration, DataTypes, done) {
done();
}
};

Possibly unhandled TypeError: Cannot call method 'push' of undefined at Object.module.exports.QueryGenerator.dataTypeMapping (/Users/csimpson/code/temp-cause-server/node_modules/sequelize/lib/dialects/postgres/query-generator.js:848:32) at Object.module.exports.QueryGenerator.pgDataTypeMapping (/Users/csimpson/code/temp-cause-server/node_modules/sequelize/lib/dialects/postgres/query-generator.js:843:19) at Object.module.exports.QueryGenerator.changeColumnQuery (/Users/csimpson/code/temp-cause-server/node_modules/sequelize/lib/dialects/postgres/query-generator.js:250:31) at module.exports.QueryInterface.changeColumn (/Users/csimpson/code/temp-cause-server/node_modules/sequelize/lib/query-interface.js:345:37) at module.exports.Migration.(anonymous function) [as changeColumn] (/Users/csimpson/code/temp-cause-server/node_modules/sequelize/lib/migration.js:26:50) at /Users/csimpson/code/temp-cause-server/database/migrations/20141216000001-alter-id-increment.js:8:41 at tryCatch1 (/Users/csimpson/code/temp-cause-server/node_modules/sequelize/node_modules/bluebird/js/main/util.js:45:21) at Promise$_callHandler [as _callHandler] (/Users/csimpson/code/temp-cause-server/node_modules/sequelize/node_modules/bluebird/js/main/promise.js:660:13) at Promise$_settlePromiseFromHandler [as _settlePromiseFromHandler] (/Users/csimpson/code/temp-cause-server/node_modules/sequelize/node_modules/bluebird/js/main/promise.js:675:18) at Promise$_settlePromiseAt (/Users/csimpson/code/temp-cause-server/node_modules/sequelize/node_modules/bluebird/js/main/promise.js:845:14)

最佳答案

我也遇到了 Possibly unhandled TypeError: Cannot call method 'push' of undefined 错误。我还尝试将 id 字段添加到现有表中,该表是我在上一次迁移中创建的。

我的修复分为两部分:

1) 将unique: true 添加到id 列。

2) 撤消之前的迁移(我在其中创建了要添加 id 列的表),然后同时运行两个迁移。

在我完成这两项操作之前,我的迁移尝试都失败了。

关于node.js - Sequelize迁移错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27509506/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com