如何使用sequelize播种uuidv4

Wal*_*way 4 node.js sequelize.js sequelize-cli

我正在尝试使用sequilize generateUUID播种uuid,但出现此错误 Seed file failed with error: sequelize.Utils.generateUUID is not a function TypeError: sequelize.Utils.generateUUID is not a function

我如何播种UUID?

    return queryInterface.bulkInsert('companies', [{
        id: sequelize.Utils.generateUUID(),
        name: 'Testing',
        updated_at: new Date(),
        created_at: new Date()
    }]);
Run Code Online (Sandbox Code Playgroud)

hic*_*sou 7

由于它包含在DataTypes软件包中,因此按照 Matt 的建议使用现有的内容是有意义的。您可以这样使用它:

{
    ...,
    type: DataTypes.UUID,
    defaultValue: DataTypes.UUIDV4,
    ...
}
Run Code Online (Sandbox Code Playgroud)

  • 哇!将键从“default”更改为“defaultValue”为我解决了这个问题。谢谢 (2认同)

Ami*_*son 6

只需安装uuid:

npm install uuid
Run Code Online (Sandbox Code Playgroud)

并在您的种子文件上:

const uuidv4 = require('uuid/v4');

module.exports = {
  up: (queryInterface, Sequelize) => {
    return queryInterface.bulkInsert('yourTableName', [
      {
        id: uuidv4()
      }],
 {});
Run Code Online (Sandbox Code Playgroud)

  • Sequelize 确实在底层使用了“uuid”,因此该包应该已经可用。不过,Sequelize 并没有以有用的方式公开“uuidv4”方法。 (2认同)

Aus*_*tin 6

npm install uuid

将其导入您的播种机文件中

const { v4: uuidv4 } = require('uuid');

return queryInterface.bulkInsert('companies', [{
    id: uuidv4(),
    name: 'Testing',
    updated_at: new Date(),
    created_at: new Date()
}]);
Run Code Online (Sandbox Code Playgroud)

有关 uuid 文档的更多信息,请参阅