0
我试图使用Seqelize和Postgresql将具有外键约束的user_id列添加到Node Express中的Todo表。 我收到一条错误消息,说“未处理的拒绝SequelizeDatabaseError:列”UserId“不存在”。正如你所看到的,SELECT查询中有“userId”和“UserId”。 使用Sequelize中的迁移添加具有外键约束的表列使用Sequelize中的迁移
SELECT查询由简单的Todo.findAll()构建。 我相信这件事情错在我如何迁移文件20161116202040 - 添加用户ID到todos.js
module.exports = {
up: function (queryInterface, Sequelize) {
return queryInterface.addColumn(
'Todos',
'userId', {
type: Sequelize.INTEGER,
references: {
model: 'Users',
key: 'id'}})},
的模型/ user.js的看起来像这样创建外键约束上:
module.exports = function(sequelize, DataTypes) {
var User = sequelize.define('User', {
email: DataTypes.STRING,
password: DataTypes.STRING
}, {
classMethods: {
associate: function(models) {
User.hasMany(models.Todo);}}});
return User;};
模型/ todo.js看起来是这样的:
module.exports = function(sequelize, DataTypes) {
var Todo = sequelize.define('Todo', {
name: DataTypes.STRING,
userId: DataTypes.INTEGER
},{
classMethods: {
associate: function(models) {
Todo.belongsTo(models.User); }}});
return Todo;};
谢谢。我想到了。在我看来,你还必须添加ForeignKey:“userId”User.hasMany调用权? – Andreas