2019年9月10日 星期二

sequelize 建立沒有primaryKey的 table model

當建立的 table model ,table並沒有任何欄位有設定primaryKey
model會預設建立一個id的欄位當作primary key
可能在做查詢時會因為這樣不存在的id而出錯
若建立的model 無pk存在 加入一段檢查
移除id attribute 即可

let havePK = false
fields.forEach(field => {
  if (field.primaryKey) havePK = true
})
const model = sequelize.define('tableName', fields, option)
if (!havePK) model.removeAttribute('id')

沒有留言: