sequelize.js - 使用 Sequelize 迁移的数据库字段的默认值

标签 sequelize.js sequelize-cli

这是我尝试使用 sequelize 完成这个简单任务的第三天,但我真的很难做到。
我想要的只是创建一个包含两个字段的表:

  • id(类型:int)
  • publicId(类型:uuid)

  • id 字段是主键、自动增量等。
    publicId 字段应该是 UUID 类型,它的值应该是 自动生成的 ,通过“defaultValue”属性。
    创建表时,我在创建模型或迁移文件时尝试了各种组合。同步也不是问题,因为每次我删除我的数据库容器时,都会生成一个新容器并再次迁移。
    我正在使用 sequelize-cli v5.5.1,但我也尝试了 v6.2。
    编码:
    (迁移文件)
    'use strict';
    module.exports = {
      up: (queryInterface, Sequelize) => {
        return queryInterface.createTable('orders', {
          id: {
            allowNull: false,
            autoIncrement: true,
            primaryKey: true,
            type: Sequelize.INTEGER
          },
          publicId: {
            type: Sequelize.UUID,
            allowNull: false,
            unique: true,
            defaultValue: Sequelize.UUIDV4,
          }
        });
      },
      down: (queryInterface, Sequelize) => {
        return queryInterface.dropTable('orders');
      }
    };
    
    
    模型文件:
    'use strict';
    module.exports = (sequelize, DataTypes) => {
      const order = sequelize.define('order', {
      }, {});
    
      order.associate = function(models) {
        // associations can be defined here
      };
      return order;
    };
    
    
    迁移成功运行,但只有 'id' 字段设置为默认值。 publicId 字段只有非空约束,没有创建默认值。
    我已经尝试了许多其他方法,比如将一个函数设置为返回 uuid 的 defaultValue,已经尝试过 Sequelize.fn('uuid_generate_v4') 等等。 defaultValues 字段似乎不起作用。

    最佳答案

    也尝试将新列添加到模型文件中,并指定属性选项。
    顺便说一句——我总是关闭严格模式,因为它给了我一些奇怪的问题。

    关于sequelize.js - 使用 Sequelize 迁移的数据库字段的默认值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63361253/

    相关文章:

    orm - sequelize中allowNull和require的区别

    node.js - 我可以在 6 小时后在 sequelize 的 defaultValue 中使用 datatypes.NOW 吗?

    mysql - 使用sequelize在express.js路由中进行原始查询

    javascript - Sequelize 迁移 - 在 Node 应用程序启动时自动运行

    postgresql - 几何类型从数据库中读取为字符串

    node.js - Sequelize 查询回复是 : , [object Object]

    Kubernetes 环境变量在 sequelize-cli 中不起作用

    javascript - 如何使用 sequelize 修复模型类的未定义问题?

    node.js - 使用sequelize-cli后如何从sequelize.model获取模型

    node.js - 在 aws beanstalk 上部署流程 nodejs + sequelize