Sequelize 不创建模型关联列

2023-12-01

当 Sequelize 创建关联字段时,我有点困惑。

我已经使用sequelize-cli 创建了我的迁移。这生成了迁移和模型文件。然后在模型文件中我填充了我的关联。然后跑了npx sequelize-cli db:migrate.

这将创建表,但不会创建模型中定义的关联所需的外键。

例如: 迁移问题:

"use strict";
module.exports = {
  up: (queryInterface, Sequelize) => {
    return queryInterface.createTable("questions", {
      id: {
        allowNull: false,
        autoIncrement: true,
        primaryKey: true,
        type: Sequelize.INTEGER
      },
      category: {
        type: Sequelize.INTEGER
      },
      question: {
        type: Sequelize.STRING
      },
      createdAt: {
        allowNull: false,
        defaultValue: new Date(),
        type: Sequelize.DATE
      },
      updatedAt: {
        allowNull: false,
        defaultValue: new Date(),
        type: Sequelize.DATE
      }
    });
  },
  down: (queryInterface, Sequelize) => {
    return queryInterface.dropTable("questions");
  }
};

模型问题:

"use strict";
module.exports = (sequelize, DataTypes) => {
  const questions = sequelize.define(
    "questions",
    {
      question: DataTypes.STRING,
      weight: DateTypes.INTEGER
    },
    {}
  );
  questions.associate = function(models) {
    // associations can be defined here
    models.questions.hasOne(models.question_categories);
    models.questions.hasMany(models.question_answers);
  };
  return questions;
};

enter image description here


您需要提供外键中使用的列。 这些线上的东西

  questions.associate = function(models) {
    // associations can be defined here
    models.questions.hasOne(models.question_categories, { foreignKey: 'question_id' });
    models.questions.hasMany(models.question_answers, { foreignKey: 'question_id' });
  };

这将在表 Question_categories 中创建一个外键,指向表 questions

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

Sequelize 不创建模型关联列 的相关文章

  • 如何使用 Sequelize 调用 MSSQL 存储过程?

    我正在努力使用 Sequelize 调用 MS SQL 存储过程 这就是我通常从 SSMS 调用存储过程的方式 USE MYDB GO DECLARE return value int EXEC return value dbo GetTh
  • 使用原始 Sequelize 查询的替换:避免单引号?

    这可能有一个非常简单的答案 但我没有看到它 我想做一个原始查询 http sequelizejs com docs 1 7 8 usage raw queries使用续集 var sequelize require sequelize se
  • Sequelize hasMany、belongsTo 或两者兼而有之?

    我想与sequ elize正确设置一对一或一对多关系 事实上 如果我使用其中之一 一切似乎都工作得很好hasOne hasMany or belongsTo在我的模型定义中 例如 以下关联确实创建了userId他们的目标字段 User ha
  • Sequelize 同步与迁移

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

    我花了几个小时却毫无结果 我有很多资源 它们都有点相同 但我就是无法让我的项目发挥作用 这个问题Sequelize js 不关联到 https stackoverflow com questions 50841912 sequelize j
  • 续集上的belongsToMany会自动创建新的连接表吗?

    我对这个续集很陌生 我尝试使用belongsToMany通过UserPermissions在用户和权限之间关联模型 这是我的代码 用户 js const bcrypt require bcrypt const config require
  • 如何使用sequelize-cli设置mysql日期类型长度

    续集 CLI版本 sequelize cli 6 2 0 sequelize 6 3 3 我用它来生成 mysql 用户表 npx sequelize cli model generate name User attributes firs
  • 在不同条件下更新sequelize中的多行

    我正在尝试对 postgres 数据库中的行执行带有sequelize 的更新命令 我需要能够使用相同的值更新具有不同条件的多行 例如 假设我有一个包含以下字段的用户表 ID 名 姓 Gender Location 创建于 假设 我在此表中
  • 在 Sequelize model.destroy({ truncate: true }) 中不重置主键

    在 Sequelize 中 我使用这个函数 model destory truncate true 它删除表中的所有数据 但问题是它不会重置表中应设置为零的主键序列 我正在使用Mysql 有人说Mysql会自动重置主键序列 但在我的情况下并
  • ExpressJS:承诺和错误处理中间件

    我定义了一些错误处理中间件和返回承诺的路由 但是当这个承诺出现错误时 我必须手动附加 catch err gt next err 在每一个承诺之后 虽然这不是问题 但对于 ExpressJs 来说 查看路由是否返回 Promise 如果返回
  • findOrCreate 与 include -sequelize.js

    我想创建一个比赛 如果不存在 以及Match 如果不存在 与锦标赛关联 let match created await Match findOrCreate where scoreHome 97 Tournament name USA So
  • 序列化迁移执行顺序

    我似乎无法在任何地方找到这个问题的答案 我了解 Sequelize 迁移和播种器的工作原理 但我没有找到任何地方说明它们是否按某种特定顺序执行 因此 如果我从一个数据库开始 进行一系列迁移 然后决定从原始起点初始化一个全新的数据库 它将以完
  • 续集 beforeSave 挂钩未触发

    我已经使用sequelize auto生成了模型 并且需要使用beforeSave钩子 请参阅here https stackoverflow com questions 47795113 insert update postgis geo
  • 使用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
  • 如何用 Jest 模拟 Sequelize?

    我正在尝试为调用 Sequelize 来创建数据库的代码编写单元测试 我一生都无法弄清楚如何模拟对 Sequelize 的调用 以便我可以断言他们已经正确创建了数据库表 我点击 Sequelize 的代码如下 import Sequeliz
  • Sequelize WHEREsequelize.fn(...) AND some='something' 排序问题

    我有一个 Sequelize findOne 函数 它会选择给定点与多边形 col geom 相交且状态 active 的行 var point sequelize fn ST GeomFromText POINT lng lat 4326
  • 如何在 Sequelize ORM 中限制连接行(多对多关联)?

    Sequelize 定义了两种模型 具有多对多关联的 Post 和 Tag Post belongsToMany db Tag through post tag foreignKey post id timestamps false Tag
  • 使用 Sequelize 实现单表继承

    有没有办法使用sequelize来创建单表继承 我希望有一个用于购买和 PartialPurchase 模型的 STI 其中我将有一个类型字段 该字段为 Purchase 或 PartialPurchase 以及类 Purchasing 和
  • sequelize:关联引用了错误的外键列名称

    我在这个问题上挣扎了几个小时 我似乎无法找到解决这个令人困惑的错误的方法 我正在尝试使用连接表进行查询并使用嵌套对象显示结果 所以表格是这样的 blogs表关联到accounts通过外键表accounts id on blogs表 这似乎是

随机推荐

  • Mvc 4 添加带有脚手架的控制器,给出错误 -“无法检索元数据...”

    尝试添加具有 CRUD 操作和 EF 的控制器时出现以下错误 无法检索 LetLord Models Tenant 的元数据 不支持使用相同的 DbCompiledModel 针对不同类型的数据库创建上下文 相反 为正在使用的每种类型的服务
  • 使用 BlueZ Stack 作为外围设备(广告商)

    Goal 使用 BlueZ 和蓝牙 4LE 适配器创建一个外围设备 宣传 Hello World 的蓝牙等效项 我在哪里 我目前已经安装并下载了 BlueZ 堆栈 我可以使用 hci 工具来识别和查看蓝牙适配器 我已经对 hciconfig
  • Highcharts - 如何减少类别之间的空间?

    我需要减少那个空间 我该怎么做 Planificaci n prioridad 和 gerencia 是类别 里面的数字是按人排列的 去做这个点填充 and 点宽是你想要的 Try this 重要的部分是 plotOptions serie
  • AVAssetReader 和音频队列流问题

    我在使用 AVAssetReader 时遇到问题 无法从 iPod 库获取样本并通过音频队列进行流式传输 我无法找到任何这样的示例 因此我尝试实现自己的示例 但似乎 AssetReader 在音频队列的回调函数处 搞砸了 具体来说 当它执行
  • iPad详细设置页面,如弹出viewController

    我想澄清的第一件事是我不是在谈论 splitview 控制器 我想要一个带有导航控制器的弹出窗口 类似于您点击键盘 gt gt 语言或邮件 gt gt 新帐户时看到的控制器 现在这不是弹出窗口控制器 有可用的标准框架吗 也许我错过了显而易见
  • 为什么 x86 寄存器如此命名?

    例如 累加器命名为EAX并且 当指令指针被调用时IP 我还知道有一些字节称为CL and DH 我知道所有的名字一定有一个约定 但是它是什么 我发现的东西 EAX Accumulator Register EBX Base Register
  • 在 Angular 2 Typescript 中使用 flow.js

    我想将 flowjs 或 ng flow 集成到我的 Angular 2 应用程序中 我已经安装了flowjs使用打字 npm install save dev types flowjs from https www github com
  • MS Access 插入大型记录集速度较慢 (VBA)

    我有一段代码创建一个新表 然后尝试将记录集值复制到该表中 唯一的问题是它非常慢并且访问在执行下面的插入部分时显示加载符号 目前 插入 500 条记录时会出现此问题 但当我获得最终数据集时 我需要插入大约 10 000 到 20 000 条记
  • Ruby on Rails - 制作新应用程序时出错(rb:55:在“require”中)

    我一直在关注 Mike Hartl 的精彩作品Ruby on Rails 教程 我必须提前对 gem 文件和 ruby 的版本做出一些决定 我决定 在让 Heroku 工作出现一些问题之后 我会直接模仿所描述的教程和 ruby 版本 让我去
  • 将 libcutils 链接到本机可执行文件[重复]

    这个问题在这里已经有答案了 我希望我的可执行文件能够调用 libcuils 支持的函数 就像property get 在 Android mk 中我有 LOCAL LDLIBS lcutils ndk build返回 未定义的引用prope
  • Android 上的时间解析问题

    尝试解析时间字符串时出现解析异常02 22 p m 我有以下转换函数 public static long convertdatetotimestamp String datestring String newdateformat Stri
  • 在同一台计算机上连接两个本地 uwp 应用程序

    我试图让两个 uwp 应用程序 Windows 10 应用程序 在同一台计算机上运行时进行通信 应用程序已经可以进行通信当运行于不同的主机 因此代码正在运行 两个应用程序都可以在其清单文件中声明的本地和公共网络中进行通信 什么时候在同一主机
  • ReactCrop 预览未渲染

    我想为我的 Web 应用程序实现图像裁剪功能 并发现 React image crop 是实现该功能的最佳 npm 包 但是 由于某种原因 ReactCrop 组件提供的预览没有在我的视口上渲染 这是我一直使用的代码 import useS
  • 使用 JQuery 导航无根 dom

    给定这个 html 字符串 var string div div p p 我用它创建一个 jQuery 对象 var dom string 是否有机会使用选择器指向其标签之一 当然 无需将其全部嵌入到新创建的项目中 dom find p 当
  • CSS:IE7 的表格和表格单元格替换

    http jsfiddle net vByVD 9 这就是我所拥有的 在大多数浏览器中 菜单看起来都是水平的 但在 IE7 及更低版本中 当然是另一回事了 它是垂直的 我发现这是因为他们不支持表格 表格单元格 我尝试了一些技巧 正如您在 C
  • OpenSSL 1.1.0 中的 EVP_get_cipherbyname 和“未定义的结构/联合 evp_cipher_st”

    我正在尝试将 openssl 与 Visual Studio C 项目一起使用 我使用 Visual Studio nmake 命令编译 openssl 然后使用以下命令将所有内容安装到预定义文件夹 C openssl nmake inst
  • 无法在 Node.js 上使用 sqlite3 将行放入数组中

    我在 Node js 中有一段代码 它从 SQLite 数据库中选择所有内容并打印每一行 它可以工作 代码如下 var sqlite3 require sqlite3 verbose var db new sqlite3 Database
  • Braintree 中出现“请求已中止:无法创建 SSL/TLS 安全通道”错误

    在我的本地 PC Braintree 中 执行时显示错误 请求已中止 无法创建 SSL TLS 安全通道 var clientToken gateway ClientToken generate 我正在使用 Braintree 2 33 0
  • Ruby 中变量前的感叹号

    通过 ruby Monk 他们偶尔会从左侧字段中抛出一段具有不熟悉语法的代码 def compute xyz return nil unless xyz xyz map a b b nil a b a end 谁能解释一下这三种用途吗 1
  • Sequelize 不创建模型关联列

    当 Sequelize 创建关联字段时 我有点困惑 我已经使用sequelize cli 创建了我的迁移 这生成了迁移和模型文件 然后在模型文件中我填充了我的关联 然后跑了npx sequelize cli db migrate 这将创建表