【问题标题】:Sequelize migration error: Cannot read property 'length' of undefinedSequelize 迁移错误:无法读取未定义的属性“长度”
【发布时间】:2023-03-27 10:39:01
【问题描述】:

这是我遵循的教程:https://medium.com/@prajramesh93/getting-started-with-node-express-and-mysql-using-sequelize-ed1225afc3e0

这是使用 express + mysql 和 ORM Sequelize 的节点 js 项目。

尝试运行sequelize db:migrate时出现此错误

'use strict';
module.exports = {
  up: (queryInterface, Sequelize) => {
    return queryInterface.createTable('Employees', {
      id: {
        allowNull: false,
        autoIncrement: true,
        primaryKey: true,
        type: Sequelize.INTEGER
      },
      name: {
        type: Sequelize.STRING
      },
      designation: {
        type: Sequelize.STRING
      },
      salary: {
        type: Sequelize.NUMBER
      },
      createdAt: {
        allowNull: false,
        type: Sequelize.DATE
      },
      updatedAt: {
        allowNull: false,
        type: Sequelize.DATE
      },
      companyId: {
        type: Sequelize.NUMBER,
        onDelete: 'CASCADE',
        references: {
          model: 'Companies',
          key: 'id',
          as: 'companyId',
        }
      }
    });
  },
  down: (queryInterface, Sequelize) => {
    return queryInterface.dropTable('Employees');
  }
};

【问题讨论】:

    标签: javascript mysql node.js express sequelize.js


    【解决方案1】:

    问题在于 NUMBER 数据类型。在 Sequelize (https://sequelize.org/master/manual/model-basics.html#data-types) 的 DataTypes 列表中找不到哪个

    更改以下内容:

    salary: {
                type: Sequelize.NUMBER
            }
    

    到:

    salary: {
                type: Sequelize.DECIMAL(10, 2)
            }
    

    还要记得更新模型相关的DataType。

    【讨论】:

      猜你喜欢
      • 2020-09-14
      • 2015-05-08
      • 2020-06-02
      • 2018-02-12
      • 2021-06-05
      • 2015-02-05
      • 2017-11-25
      • 2021-02-26
      • 1970-01-01
      相关资源
      最近更新 更多