Ошибка миграции Sequelize: невозможно прочитать свойство 'length' из неопределенного - PullRequest
0 голосов
/ 14 ноября 2018

Это учебник, которому я следовал: https://medium.com/@prajramesh93/getting-started-with-node-express-and-mysql-using-sequelize-ed1225afc3e0

Это проект узла js с использованием express + mysql, где я использую, и ORM Sequelize.

Я получаю эту ошибку при попытке запустить 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');
  }
};

1 Ответ

0 голосов
/ 14 ноября 2018

Проблема заключалась в использовании NUMBER DataType. Который не был найден в списке DataTypes of Sequelize (http://docs.sequelizejs.com/manual/tutorial/models-definition.html#data-types)

Изменить следующее:

salary: {
            type: Sequelize.NUMBER
        }

до:

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

Также не забудьте обновить DataType, связанный с моделью.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...