Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

sequelize - Não é possível adicionar restrição de chave estrangeira


Este é um erro de tipo comum ocorre principalmente por causa de

1. Quando o tipo de dados da chave primária e a chave estrangeira tipo de dados não correspondeu

return sequelize.define('RefreshToken', {
    userId: {
      type: DataTypes.INTEGER(11), // The data type defined here and 
      references: {
        model: 'Users',
        key: 'idUsers'
      }
    }, 


return sequelize.define('Users', {
    idUsers: {
      type: DataTypes.INTEGER(11),  // This data type should be the same
    },

2. Quando a chave referenciada não é uma chave primária ou exclusiva.


Você não pode ter duas chaves primárias, portanto, outras chaves referenciadas devem ser definidas como únicas. unique:true
 return sequelize.define('Users', {
    idUsers: {
      primaryKey: true  
    },
    mail: {
      type: DataTypes.STRING(45),
      allowNull: false,
      primaryKey: true   // You should change this to 'unique:true'. you cant hv two primary keys in one table. 
    }