SequelizeJS - 未处理的拒绝SequelizeForeignKeyConstraintError

时间:2016-03-04 06:54:51

标签: javascript node.js postgresql sequelize.js

我在Sequelize中遇到了我的数据模型问题。从我可以收集到的,它与我的协会有关。我在抛出这个错误的时候有点迷失了。我在Admin和Filter之间有一个1:m的关联,另一个模型是User。

管理

"use strict";

module.exports = function(sequelize, DataTypes) {
  var Admin = sequelize.define("Admin", {
    username: DataTypes.STRING,
    password: DataTypes.STRING
  }, {
    classMethods: {
      associate: function(models) {
        Admin.hasMany(models.Filter,{
          foreignKey: 'id',
        })
      }
    },
    freezeTableName:true
  });

  Admin.sync()

  return Admin;
};

过滤

"use strict";

module.exports = function(sequelize, DataTypes) {
  var Filter = sequelize.define("Filter", {
    title: DataTypes.STRING,
    image_uri: DataTypes.STRING,
    tags: DataTypes.ARRAY(DataTypes.STRING),
    ownerId: DataTypes.INTEGER,
    isFeatured: DataTypes.BOOLEAN,
    AdminId: DataTypes.INTEGER
  }, {
    classMethods: {
      associate: function(models) {
        Filter.belongsTo(models.Admin, {
          foreignKey: 'id',
          as: 'admin'
        });
      }
    },
    freezeTableName:true
  });

  Filter.sync();

  return Filter;
};

用户

"use strict";

module.exports = function(sequelize, DataTypes) {
  var User = sequelize.define("User", {
    name: DataTypes.STRING,
    first_name: DataTypes.STRING,
    last_name: DataTypes.STRING,
    age_range: DataTypes.STRING,
    gender: DataTypes.STRING,
    email: {
      type: DataTypes.STRING,
      unique: true
    }
  }, {
    freezeTableName:true
  });

  User.sync()

  return User;
};

当我创建新过滤器时,我能够创建并保存第一个过滤器,但之后创建的任何过滤器都会出现此错误:Unhandled rejection SequelizeForeignKeyConstraintError

此外,当我启动应用程序并创建表格时,我收到以下两个错误:Unhandled rejection SequelizeDatabaseError: relation "Admin" does not existUnhandled rejection SequelizeUniqueConstraintError: Validation error

0 个答案:

没有答案