Sequelize"独特:真实"使用不同的keyname制作相同的唯一键两次

时间:2017-08-27 07:59:14

标签: mysql node.js sequelize.js

测试1:添加"唯一:true"在电子邮件属性中。

测试2:添加"唯一:{args:true,msg:" xxxxxx"}"在电子邮件属性中。

使用Sequelize:4.7.5& MySQL:5.7.19

我预计两个测试用例都会有一个索引。

但是我为Test1获得了两个索引。两个索引都具有相同列不同的键名

这是一个错误还是我做错了什么?

请尝试以下型号defs。

Test1 = {
id: {
    type: Sequelize.INTEGER.UNSIGNED,
    primaryKey: true,
    autoIncrement: true
},

emailId: {
    type: Sequelize.STRING,
    unique: true,
    allowNull: false,
    validate: {
        isEmail: {
            args: true,
            msg: 'Invalid email id.'
        }
    }
}
}


Test2 = {
id: {
    type: Sequelize.INTEGER.UNSIGNED,
    primaryKey: true,
    autoIncrement: true
},

emailId: {
    type: Sequelize.STRING,
    unique: {
        args: true,
        msg: 'This email id is already registered.'
    },
    allowNull: false,
    validate: {
        isEmail: {
            args: true,
            msg: 'Invalid email id.'
        }
    }
}
}

1 个答案:

答案 0 :(得分:1)

使用字符串代替布尔值。

我在这里找到了答案:https://github.com/sequelize/sequelize/issues/6134

Normal index with string