gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-03 22:34:06 24 4
gpt4 key购买 nike

这是我尝试使用 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/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com