这是我使用的快速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] 举报,一经查实,本站将立刻删除。