我认为我没有做错任何事情。创建表时出现错误“外键约束格式错误”。我尝试了许多不同的方法,但是没有找到它。我无法解决错误的问题,请帮忙。
创建一个名为角色的表。(role.js)
'use strict';
module.exports = {
up: async (queryInterface, Sequelize) => {
await queryInterface.createTable('roles', {
id: {
allowNull: false,
autoIncrement: true,
primaryKey: true,
type: Sequelize.DataTypes.INTEGER,
},
roleName: {
type: Sequelize.DataTypes.STRING,
allowNull: false,
},
createdAt: {
allowNull: false,
type: Sequelize.DataTypes.DATEONLY
},
updatedAt: {
allowNull: false,
type: Sequelize.DataTypes.DATEONLY
}
});
},
down: async (queryInterface, Sequelize) => {
await queryInterface.dropTable('roles');
}
};
创建一个名为users(user.js)的表
'use strict';
module.exports = {
up: async (queryInterface, Sequelize) => {
await queryInterface.createTable('users', {
id: {
allowNull: false,
autoIncrement: true,
primaryKey: true,
type: Sequelize.DataTypes.INTEGER,
},
mail: {
type: Sequelize.DataTypes.STRING,
unique: true,
allowNull: false,
},
password: {
type: Sequelize.DataTypes.STRING,
allowNull: false,
},
createdAt: {
allowNull: false,
type: Sequelize.DataTypes.DATEONLY
},
updatedAt: {
allowNull: false,
type: Sequelize.DataTypes.DATEONLY }
});
},
down: async (queryInterface, Sequelize) => {
await queryInterface.dropTable('users');
}
};
我无法创建名为用户角色的表。我收到上述错误。一切正常,我们还没有尝试过,没有解决办法。 userRole.js
'use strict';
module.exports = {
up: async (queryInterface, Sequelize) => {
await queryInterface.createTable('userRoles', {
id: {
allowNull: false,
autoIncrement: true,
primaryKey: true,
type: Sequelize.DataTypes.INTEGER
},
userID: {
field: 'userID',
type: Sequelize.INTEGER,
references: {
model: 'user',
key: 'id'
},
onUpdate: 'CASCADE',
onDelete: 'CASCADE',
},
roleID: {
type: Sequelize.DataTypes.INTEGER,
allowNull: false,
references: {
model: 'role',
key: 'id'
},
onUpdate: 'CASCADE',
onDelete: 'CASCADE',
},
createdAt: {
allowNull: false,
type: Sequelize.DataTypes.DATEONLY
},
updatedAt: {
allowNull: false,
type: Sequelize.DataTypes.DATEONLY
}
});
},
down: async (queryInterface, Sequelize) => {
await queryInterface.dropTable('userRoles');
}
};