我有一个初始化如下的模型:
Group.init({
id: {
type: DataTypes.UUID,
primaryKey: true,
allowNull: false,
defaultValue: DataTypes.UUIDV4,
},
name: Sequelize.STRING,
});
我还有一个相关的迁移文件:
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:
const groups = [{ name: 'group-1' }, { name: 'group-2' }];
return queryInterface.bulkInsert('Groups', groups, {
returning: true,
validate: true,
individualHooks: true,
});
},
然而,在这个种子过程中有一个错误:
ERROR: null value in column "id" violates not-null constraint
如何自动生成uuid?
发布于 2021-02-07 17:01:48
我也遇到过类似的问题。在我的例子中(在迁移文件上),我更改了
defaultValue: Sequelize.UUIDV4,
至
defaultValue: Sequelize.literal('uuid_generate_v4()'),
PS:我在Postgres上工作,所以需要在模式上启用uuid模块
https://stackoverflow.com/questions/57646258
复制相似问题