我的自我引用Sequelize模型没有创建额外的列

Sha*_*oon 6 sequelize.js

module.exports = (sequelize, DataTypes) => {
  const User = sequelize.define(
    "User",
    {
      username: {
        type: DataTypes.STRING,
        unique: true
      },
      firstName: {
        type: DataTypes.STRING
      },
      lastName: {
        type: DataTypes.STRING
      },
      email: {
        type: DataTypes.STRING
      },
      password: {
        type: DataTypes.STRING
      },
      lastLogin: {
        type: DataTypes.DATE
      },
      active: {
        type: DataTypes.BOOLEAN
      },
      lastName: {
        type: DataTypes.STRING
      }
    }, {
      paranoid: true,
      classMethods: {
        associate: models => {
          User.hasOne(models.User, {
            as: "createdByUser"
          })

          User.hasOne(models.User, {
            as: "updatedByUser"
          })
        }
      }
    }
  )

  return User
};
Run Code Online (Sandbox Code Playgroud)

我希望createdByUser在Postgres DB中调用一个字段,但它不存在.我究竟做错了什么?

Sha*_*oon 2

解决方案是

module.exports = (sequelize, DataTypes) => {
  const User = sequelize.define(
    "User",
    {
      username: {
        type: DataTypes.STRING,
        unique: true
      },
      firstName: {
        type: DataTypes.STRING
      },
      lastName: {
        type: DataTypes.STRING
      },
      email: {
        type: DataTypes.STRING
      },
      password: {
        type: DataTypes.STRING
      },
      lastLogin: {
        type: DataTypes.DATE
      },
      active: {
        type: DataTypes.BOOLEAN
      }
    }, {
      paranoid: true
    }
  )

  User.associate = models => {
    User.hasOne(models.User, {
      as: "createdByUser"
    })

    User.hasOne(models.User, {
      as: "updatedByUser"
    })
  }

  return User
};
Run Code Online (Sandbox Code Playgroud)

在新版本的 Sequelize (4+) 中,不需要classMethods