如何通过 Sequelize CLI 将主键类型设置为 UUID

2024-05-08

我正在通过以下方式创建数据库模型序列化 CLI https://github.com/sequelize/cli用这个命令:

sequelize model:create --name User --attributes "firstname:string, lastname:string"

这将创建相应的迁移脚本:

'use strict';
module.exports = {
  up: function(queryInterface, Sequelize) {
    return queryInterface.createTable('Users', {
      id: {
        allowNull: false,
        autoIncrement: true,
        primaryKey: true,
        type: Sequelize.INTEGER
      },
      firstname: {
        type: Sequelize.STRING
      },
      lastname: {
        type: Sequelize.STRING
      },
      createdAt: {
        allowNull: false,
        type: Sequelize.DATE
      },
      updatedAt: {
        allowNull: false,
        type: Sequelize.DATE
      }
    });
  },
  down: function(queryInterface, Sequelize) {
    return queryInterface.dropTable('Users');
  }
};

如图所示,主键设置为integer.

有没有办法默认使用 CLIUUID反而?


您可以简单地使用 Sequelize 附带的 UUIDV4 类型。 以下是更多详细信息:UUIDV4 https://khalilstemmler.com/articles/auto-increment-or-uuid/

例如做出这样的定义:

id: {
  type: Sequelize.UUID,
  defaultValue: Sequelize.UUIDV4,
  allowNull: false,
  primaryKey: true
}

这没有使用 Sequelize CLI,但您可以通过手动更改来使用本机 UUIDV4。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何通过 Sequelize CLI 将主键类型设置为 UUID 的相关文章

  • 如何在sequelize中构建EXISTS子句

    我有一个模型 其中有 3 个实体 User Project Contributor 一个项目有一个所有者 即用户 和多个贡献者 即用户 在我的仪表板中 我想列出用户的项目 即用户是所有者或贡献者的所有项目 使用查找拥有的项目Project
  • MySQL 与 Sequelize:ER_BAD_DB_ERROR:未知数据库

    我正在遵循教程 下面是代码 var Sequelize require sequelize var sequelize new Sequelize basic mysql database mysql root password diale
  • Sequelize 同步与迁移

    我正在学习 Sequelize 我想了解一些有关同步与迁移的说明 我知道同步将根据我的模型架构创建丢失的表 但我还读到同步用于初始化数据库 而迁移用于生产 如果是这种情况 express example 显示调用同步来自bin www ht
  • 在多对多连接的位置进行序列化

    我希望有人能帮助我 我正在使用 Express js 的 Sequelize ORM 并且在 2 个表之间建立了有效的多对多关系 为了简化我的查询 让我们假装我的表是 Users Books 和 UserBooks 其中 UserBooks
  • 在不同条件下更新sequelize中的多行

    我正在尝试对 postgres 数据库中的行执行带有sequelize 的更新命令 我需要能够使用相同的值更新具有不同条件的多行 例如 假设我有一个包含以下字段的用户表 ID 名 姓 Gender Location 创建于 假设 我在此表中
  • Node Sequelize 查找 $like 通配符

    我正在尝试向 Node Sequelize findAll 添加一个 where like 子句 以类似于 sql 查询select from myData where name like Bob 用下面的代码 let data Array
  • Sequelize.js 删除查询?

    有没有办法像findAll一样编写delete deleteAll查询 例如 我想做这样的事情 假设 MyModel 是 Sequelize 模型 MyModel deleteAll where some field something o
  • Sequelize js - 限制和排序错误

    在sequelize js中对查询进行排序的正确方法是什么 例子 db model findAll where conditions order postDate DESC limit 10 offset 0 include model1
  • sequelize Model.hasOne 错误:模型未与 ModelTwo 关联

    我已将sequelizejs 集成到我的express 框架中 我配置了所有模型 并尝试用它构建我的第一个查询 我不断收到错误 错误 模型未与 ModelTwo 关联 app get function req res db Member f
  • PostgreSQL - 连接表的 SequelizeDatabaseError(代码:42P01)

    我正在尝试为多对多关系创建一个连接表 我收到以下错误 name SequelizeDatabaseError parent name error length 110 severity ERROR code 42P01 position 1
  • 在我自己的文件夹结构中的 Sequelize 中的迁移

    我是新来的Sequelize我当前的项目要求我将它与迁移一起使用 我熟悉迁移的内容和方式 我来自Django背景 每个子应用程序在同一文件夹中都有模态 视图 api url 和迁移 我喜欢这个结构 并希望在我的 Nodejs 应用程序中保持
  • 使用sequelize 根据express.js 中的路由更改数据库连接

    是否可以更改数据库连接sequelize取决于路线 例如 用户可以访问网站中的 2 个不同安装 example com foo example com bar 登录后用户将被重定向到example com foo为了获得他们的所有任务foo
  • Sequelize 关联 - 请改用 Promise 风格

    我正在尝试将 3 张桌子连接在一起Products Suppliers and Categories然后排SupplierID 13 我读过了如何在sequelize中实现多对多关联 https stackoverflow com a 25
  • Node.js 7 如何将sequelize事务与async/await一起使用?

    Node js 7 及更高版本已经支持 async await 语法 我应该如何在后续事务中使用 async await let transaction try get transaction transaction await seque
  • Docker - SequelizeConnectionRefusedError:连接 ECONNREFUSED 127.0.0.1:3306

    我正在尝试使用 Docker 容器启动并运行我的 Nodejs 应用程序 我不知道可能出了什么问题 当我使用控制台调试凭据时 凭据似乎已正确传递 另外启动sequel pro并使用相同的用户名和密码直接连接似乎也可行 当节点在容器中启动时
  • 启动服务器后,带有sequelize的Nodejs无法在mysql工作台中创建表

    我开始学习如何使用构建 Rest APINodejs Expressjs Sequelize and MySQL using Mysqlworkbench 我的问题 启动服务器后 该表不是由Sequelize并且没有表Mysqlworkbe
  • 如何在Sequelize中配置一对多关系?

    我目前正在使用 Express 和 Sequelize MySQL 想知道解决这个问题的最佳方法是什么 如果这是一个基本问题 我很抱歉 因为我对 Sequelize 甚至 SQL 数据库都很陌生 我有一个模型User像这样 export d
  • 无法在 Sequelize 迁移中执行原始查询

    我正在尝试使用 Sequelize 迁移更新我的数据库 因此我尝试编写这样的 Sequelize 迁移 use strict module exports up queryInterface Sequelize migration gt q
  • 不使用sequelize模型存储updatedAt

    当我将模型存储在 MySQL 数据库中时 它们是不可变的 因此 我可以在表中看到对createdAt列的需要 但我不需要冗余的updatedAt列 我可以将sequelize 配置为不存储updatedAt time 然后可以从表中删除该列
  • Sequelize 中的 FOR SHARE 和 FOR UPDATE 语句

    当我们使用事务时 常规 SQL 查询可以包含 SELECT FOR SHARE 和 SELECT FOR UPDATE 语句 有没有办法用 Sequelize 设置相同的语句 我还没有找到这些选项 也许有一些技巧 需要什么 您可以在这里阅读

随机推荐