微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

javascript – Sequelize migration错误:无法读取未定义的属性“长度”

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

这是我使用的快速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');
  }
};

解决方法:

问题依赖于NUMBER DataType.在Sequelize(http://docs.sequelizejs.com/manual/tutorial/models-definition.html#data-types)的数据类型列表中找不到

更改以下内容

salary: {
            type: Sequelize.NUMBER
        }

至:

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

还记得更新DataType相关的模型.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐