1.使用sequelize创建一张表
//使用命令行
npx sequelize migration:generate --name=user
//在创建的文章中编辑如下代码,我们可以看到下面的代码没有id主键
module.exports = {
async up(queryInterface, Sequelize) {
const { INTEGER, STRING, DATE, ENUM } = Sequelize
await queryInterface.createTable('user_role', {
user_id: {
type: INTEGER(20).UNSIGNED,
},
role_id: {
type: INTEGER(20).UNSIGNED,
},
creator: {
type: STRING(30),
allowNull: false,
defaultValue: '',
comment: '创建人',
},
created_at: DATE,
updated_at: DATE,
})
},
async down(queryInterface, Sequelize) {
await queryInterface.dropTable('user_role')
},
}
2.创建的表没有id,在findOned的时候报错
//执行如下代码
let roles = await app.model.UserRole.findOne({
where: {
user_id: ctx.authUser.id,
},
})
//报错
Unknown column 'id' in 'field list'
复制代码
3. 怎么解决呢在model中如下添加一句 UserRole.removeAttribute('id')
export default (app) => {
const { INTEGER, STRING, DATE } = app.Sequelize
const UserRole = app.model.define('user_role', {
user_id: {
type: INTEGER(20).UNSIGNED,
},
role_id: {
type: INTEGER(20).UNSIGNED,
},
creator: {
type: STRING(30),
allowNull: false,
defaultValue: '',
comment: '创建人',
},
created_at: DATE,
updated_at: DATE,
})
UserRole.removeAttribute('id')
return UserRole
}
复制代码
4. 再次执行查询不再报错
let roles = await app.model.UserRole.findOne({
where: {
user_id: ctx.authUser.id,
},
})
本文暂时没有评论,来添加一个吧(●'◡'●)