我在构建时收到错误:
此错误仅在为主键提供参数 autoIncrement=true 时出现。
'use strict';
export default function(sequelize, DataTypes) {
return sequelize.define('Ladder', {
ladder_id: {
type: DataTypes.UUID,
allowNull: false,
primaryKey: true,
autoIncrement: true //<------- If commented it works fine
},
ladder_name: {
type: DataTypes.STRING(50),
allowNull: false,
unique: true
},
ladder_description: {
type: DataTypes.TEXT,
allowNull: true
},
ladder_open: {
type: DataTypes.BOOLEAN,
allowNull: false
},
ladder_hidden: {
type: DataTypes.BOOLEAN,
allowNull: false
},
ladder_creation_date: {
type: DataTypes.DATE,
allowNull: false
},
ladder_fk_user: {
type: DataTypes.INTEGER,
allowNull: false
},
ladder_fk_game: {
type: DataTypes.UUID,
allowNull: false
},
ladder_fk_platforms: {
type: DataTypes.ARRAY(DataTypes.UUID),
allowNull: false
}
},
{
schema: 'ladder',
tableName: 'ladders'
});
}
我有 Sequelize 3.30.4 和 postgreSQL 9.6。
我希望 autoIncrement 为 true,因为我正在使用 postgreSQL uuid_generate_v4() 生成 UUID。
最佳答案
这里不是普通的 sequelize 用户,但让我指出在 postgreql 中对非顺序列使用 autoIncrement 不是正确的方法。 Postgresql 不提供默认的 uuid 数字生成器,但可以轻松添加扩展 https://www.postgresql.org/docs/9.4/static/uuid-ossp.html 。我相信你已经这样做了。
下一步是我们的 sequelize.fn 函数。
所以我们有
ladder_id: {
type: DataTypes.UUID,
allowNull: false,
primaryKey: true,
default: sequelize.fn('uuid_generate_v4')
}
关于javascript - "SERIAL"处或附近的语法错误,仅使用 autoIncrement,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/43993725/