首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Sequelize - id as uuid -使用bulkInsert自动创建

Sequelize - id as uuid -使用bulkInsert自动创建
EN

Stack Overflow用户
提问于 2019-08-25 21:04:31
回答 1查看 660关注 0票数 4

我有一个初始化如下的模型:

代码语言:javascript
运行
复制
Group.init({
    id: {
      type: DataTypes.UUID,
      primaryKey: true,
      allowNull: false,
      defaultValue: DataTypes.UUIDV4,
    },
    name: Sequelize.STRING,
});

我还有一个相关的迁移文件:

代码语言:javascript
运行
复制
module.exports = {
  up: (queryInterface, Sequelize) => {
    return queryInterface.createTable('Groups', {
      id: {
        type: Sequelize.UUID,
        primaryKey: true,
        allowNull: false,
        defaultValue: Sequelize.UUIDV4,
      },
      name: Sequelize.STRING,
    });
  },
  down: (queryInterface, Sequelize) => {
    return queryInterface.dropTable('Groups');
  },
};

在创建组的同时,我试图在seeders内部执行bulkInsert操作,并且我只传递了一个name属性,希望DB创建uuids:

代码语言:javascript
运行
复制
const groups = [{ name: 'group-1' }, { name: 'group-2' }];
return queryInterface.bulkInsert('Groups', groups, {
  returning: true,
  validate: true,
  individualHooks: true,
});
},

然而,在这个种子过程中有一个错误:

代码语言:javascript
运行
复制
ERROR: null value in column "id" violates not-null constraint

如何自动生成uuid?

EN

回答 1

Stack Overflow用户

发布于 2021-02-07 17:01:48

我也遇到过类似的问题。在我的例子中(在迁移文件上),我更改了

代码语言:javascript
运行
复制
defaultValue: Sequelize.UUIDV4, 

代码语言:javascript
运行
复制
defaultValue: Sequelize.literal('uuid_generate_v4()'),

PS:我在Postgres上工作,所以需要在模式上启用uuid模块

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57646258

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档