我正在尝试为sequelize模型中的一个sql列创建一个简单的非唯一索引。我试着跟随这篇文章:如何在sequelize中定义多列的唯一索引。
这是我的密码:
module.exports = (sequelize, DataTypes) => {
const Item = sequelize.define('Item', {
itemId: DataTypes.STRING,
ownerId: DataTypes.INTEGER,
status: DataTypes.STRING,
type: DataTypes.STRING,
nature: DataTypes.STRING,
content: DataTypes.STRING,
moment: DataTypes.BIGINT,
indexes:[
{
unique: 'false',
fields:['ownerId']
}
]
});
return Item;
};
我得到这个错误:
未处理的拒绝sequelizedatabaseerror:您的sql语法有错误;检查与您的mariadb服务器版本相对应的手册,以获取在“[object]”附近使用的正确语法, createdAt
日期时间不为空, updatedAt
datetime不为空,第1行的p'
我在server.js文件中的代码如下:
models.sequelize.sync().then(function () {
server.listen(port, () => {
console.log('server ready')
})
});
我的设置有什么问题?有没有其他方法可以用sequelize来实现这一点?
2条答案
按热度按时间ippsafx71#
它也可以在单次迁移中工作。
在我的例子中,只需在迁移文件中执行addindex after createtable方法
迁移:
在迁移文件中对我有用。
iyr7buue2#
差不多了。应在新对象中添加索引,如下所示: