节点的Sequelize不允许在主键上自动生成UUID *,除非*字段名称是' id'

时间:2014-09-02 19:13:00

标签: node.js sequelize.js

Sequelize commit似乎确认了命名主键' id'让它变得特别。根据我使用以下代码段的测试,将字段名称更改为' id'之外的其他内容。足够没有设置默认值,因此插入失败。

id: { type: DataTypes.UUID, primaryKey: true, defaultValue: DataTypes.UUIDV4, allowNull: false }

那么有没有办法保持命名主键字段的灵活性并将其默认为UUID?

1 个答案:

答案 0 :(得分:0)

  

问题有点太老了,那时我认为这不可能   ,但在2018年有可能:),我们开始吧:

要定义自己的主键:

sequelize.define('collection', {
  uid: {
    type: Sequelize.INTEGER,
    primaryKey: true,
    autoIncrement: true // Automatically gets converted to SERIAL for postgres
  }
});

sequelize.define('collection', {
  uuid: {
    type: Sequelize.UUID,
    primaryKey: true
  }
});

READ MORE