Sequelize 迁移:关系 不存在
2024-01-17

我正在研究 Author hasMany Books 示例,并尝试运行sequelize-cli 迁移,但是当我运行以下迁移时遇到以下问题:

ERROR: relation "authors" does not exist

这是创建作者的第一次迁移:

'use strict';
module.exports = {
  up: (queryInterface, Sequelize) => {
    return queryInterface.createTable('Authors', {
      id: {
        allowNull: false,
        autoIncrement: true,
        primaryKey: true,
        type: Sequelize.INTEGER
      },
      firstName: {
        type: Sequelize.STRING
      },
      lastName: {
        type: Sequelize.STRING
      },
      dateOfBirth: {
        type: Sequelize.DATEONLY
      },
      dateOfDeath: {
        type: Sequelize.DATEONLY
      },
      createdAt: {
        allowNull: false,
        type: Sequelize.DATE
      },
      updatedAt: {
        allowNull: false,
        type: Sequelize.DATE
      }
    });
  },
  down: (queryInterface, Sequelize) => {
    return queryInterface.dropTable('Authors');
  }
};

第二次迁移创建一本书:

'use strict';
module.exports = {
  up: (queryInterface, Sequelize) => {
    return queryInterface.createTable('Books', {
      id: {
        allowNull: false,
        autoIncrement: true,
        primaryKey: true,
        type: Sequelize.INTEGER
      },
      title: {
        type: Sequelize.STRING
      },
      summary: {
        type: Sequelize.STRING
      },
      isbn: {
        type: Sequelize.STRING
      },
      createdAt: {
        allowNull: false,
        type: Sequelize.DATE
      },
      updatedAt: {
        allowNull: false,
        type: Sequelize.DATE
      }
    });
  },
  down: (queryInterface, Sequelize) => {
    return queryInterface.dropTable('Books');
  }
};

创建 Author 和 Book 之间关系的迁移:

'use strict';

module.exports = {
  up: (queryInterface, Sequelize) => {
    return queryInterface.addColumn(
      'Books', // name of source model
      'AuthorId',
      {
        type: Sequelize.INTEGER,
        references: {
          model: 'authors',
          key: 'id'
        },
        onUpdate: 'CASCADE',
        onDelete: 'SET NULL'
      }
    )
  },

  down: (queryInterface, Sequelize) => {
    return queryInterface.removeColumn(
      'Books',
      'AuthorId'
    )
  }
};

这些是我的模型:

作者.js:

'use strict';
module.exports = (sequelize, DataTypes) => {
  var Author = sequelize.define('Author', {
    firstName: { type: DataTypes.STRING, allowNull: false, len: [2, 100] },
    lastName: { type: DataTypes.STRING, allowNull: false },
    dateOfBirth: { type: DataTypes.DATEONLY },
    dateOfDeath: { type: DataTypes.DATEONLY }
  }, {});
  Author.associate = function (models) {
    // associations can be defined here
    Author.hasMany(models.Book);
  };
  return Author;
};

book.js:

'use strict';
module.exports = (sequelize, DataTypes) => {
  var Book = sequelize.define('Book', {
    title: { type: DataTypes.STRING, allowNull: false, len: [2, 100], trim: true },
    summary: { type: DataTypes.STRING, allowNull: false },
    isbn: { type: DataTypes.STRING, allowNull: false }
  }, {});

  Book.associate = function (models) {
    // associations can be defined here
    Book.belongsTo(models.Author);
  };
  return Book;
};

我尝试了各种方法都无济于事。我的猜测是它正在尝试以异步方式更改表,但之前的迁移已运行并完成:

我正在使用以下内容:

"pg": "^7.4.3"
"sequelize": "^4.37.10"
"sequelize-cli": "^4.0.0"
 "express": "~4.16.0"

我对续集非常陌生,任何帮助将不胜感激!


你已经创建了Authors表,但用一个小引用它a。应该是这样的

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

Sequelize 迁移:关系

不存在 的相关文章

随机推荐

  • FreeTDS 不使用配置的 tds 版本

    freetds v0 91 tds 版本不匹配 我想在 Ubuntu 14 04 上连接到带有 FreeBSD 的 Windows SQL Server FreeTDS 使用 apt get 安装 我使用以下命令尝试了不同的 tds 版本
  • iexpress 生成的可执行文件在 XP 上不是有效的 win32 应用程序

    我使用的是 c windows syswow64 中的 32 位 iexpress exe 生成的 exe 文件在 Windows 7 和 Windows 8 x64 上运行良好 我可以确认它是 32 位应用程序 然而 当尝试在 XP 上运
  • 用C语言访问Gmail

    python 有等效的吗libgmail http libgmail sourceforge net in C Edit 我正在努力实现相当于GmailFS http en wikipedia org wiki GmailFS在C 如果您能
  • 使用knitr时无法让LyX生成不在同一行的两个图

    这里是针织新手 喜欢这个包 一切都很顺利 除了在 LyX 中编译后两个图不会并排出现 不确定发生了什么 因为我正在逐字复制 knitr 图形手册 knitr graphics lyx 中的示例 我的 LyX 代码 在图形浮动中 lt
  • Spring boot:排除一些自动配置的bean

    我有一个使用 spring kafka 的 Spring boot 项目 在这个项目中 我构建了一些包装 spring kafka beans 的事件驱动组件 即 KafkaTemplate 和 ConcurrentKafkaListene
  • 如何通过.NET/C# 查找CPU 核心数?

    有没有办法通过 NET C 找出CPU核心数 PS这是一个直接的代码问题 而不是 我应该使用多线程吗 问题 您可以获得与处理器相关的多种不同信息 物理处理器数量 核心数 逻辑处理器的数量 这些都可以不同 如果机器具有 2 个支持超线程的双核
  • 带有 angular2 的非 SPA

    我开始使用 Angular2 带有 Express js 后端 目的是将页面的几个部分的控制权传递给 Angular2 组件 但我最终意识到 当 Angular2 控制页面的整个区域时 系统会更有效 但是 我的应用程序不是 SPA 除了保存
  • log4net 多个附加程序,写入事件查看器

    我使用 log4net 进行日志记录 我有两个附加程序 一个文件和另一个事件日志附加程序 我在注册表编辑器中注册了应用程序 问题是现在两个记录器都在事件查看器中写入 我需要fileAppender写入文件并eventLogAppender显
  • Cakephp find函数中限制sql

    我如何在cakephp中的sql中使用限制 我的意思是下面是sql select from emp limit 3 4 如何在 find 函数中使用上述限制 3 4 更好的方法 this gt Emp gt find all array l
  • VB6 子串索引

    我正在尝试在 VB6 中匹配电子邮件地址字符串中的域名 但这不是我的日常语言 我基本上想从地址中提取域名 即 电子邮件受保护 cdn cgi l email protection 进行比较 我想通过获取 之后的所有内容来提取它 我想找到 的
  • R 中的 3d 曲面图

    我正在寻找使用 Rplotly库来创建 x y z 坐标数据的 3D 曲面图 类似于下面的链接所示 https plot ly r 3d surface plots https plot ly r 3d surface plots 看来pl
  • 如何在每次显示视图控制器时随机化 UILabel 文本

    如何在每次显示视图控制器时使 ViewController 中的标签具有不同的文本字符串 谢谢 我正在使用 Swift 3 假设您知道如何添加UILabel给你的ViewController 这里是如何在开始时选择随机文本的快速示例 cla
  • Haskell 中的自定义 concat (++) 运算符

    是否可以定义我自己的 Haskell 中自定义数据类型的运算符 I have data MyType MyType String 我想将我自己的串联运算符定义为 instance MyType where MyType x MyType y
  • java.lang.IllegalArgumentException:指定的类型 [com.sun.faces.application.WebappLifecycleListener] 不是预期的侦听器类型之一

    我遇到了以下问题 我有一个使用 Java 8 和 tomcat 7 的应用程序 现在我尝试转向 tomcat 8 我下载了一个开发环境 tomcat 8 二进制文件并开始在 eclipse 中工作 我添加了一个新服务器 Apache tom
  • Android按钮动画与计时同步

    我需要建议如何创建一些我想添加到按钮中的动画 其实我有动画代码 我需要的是如何正确设置每个动画的时间 这是我已经尝试过的 fest setVisibility View INVISIBLE handler postDelayed new R
  • 使用Python检测图像是彩色、灰度还是黑白

    我从 jpeg 格式的 PDF 文件中提取页面图像 我需要确定每个图像是否更灰度 彩色或黑白 具有容差因子 我找到了一些使用 PIL 进行颜色检测的方法 here https stackoverflow com questions 2270
  • 检查 fortran 中数组是否可分配

    在 Fortran 中 可以使用以下命令检查可分配数组是否已分配allocated陈述 program test allocated integer i 4 real 4 allocatable x print before allocat
  • jQuery、Chrome 和复选框。奇怪的行为

    我浏览了该网站 似乎找不到这个问题的答案 如果确实存在 请随时引导我回答上述问题 我目前正在尝试执行一些基于树的复选框操作 并且遇到了一些我觉得奇怪的行为 在 Google Chrome 中 我发现检查复选框会留下一些 残留物 如果您愿意的
  • 如何将结果存储到 HP OpenVMS DCL 中的变量?

    我想将程序的输出保存到变量中 我使用以下方法 但失败了 PIPE RUN TEST DEFINE JOB VALUE SYS PIPE x f logical VALUE 我收到一个错误 DCL W MAXPARM too many par
  • Sequelize 迁移:关系

不存在
我正在研究 Author hasMany Books 示例 并尝试运行sequelize cli 迁移 但是当我运行以下迁移时遇到以下问题 ERROR relation authors does not exist 这是创建作者的第一次迁移
Powered by Hwhale