使用 adonisjs jsonb 字段在 mysql 中插入记录

Insert record in mysql with adonisjs jsonb field

我正在尝试插入一条记录,其中一个字段的类型为 JSONB

以下是我尝试构建的格式以及最后出现的错误。

有问题的字段是 veiculo

orm 正在尝试访问 json 的内部以尝试识别该字段。

它应该插入完整的对象。

谢谢关注。谢谢。

Post

{
  veiculo: {
    placa: 'PLACA',
    motorista: 'NOME',
    contato: 'CONTATO',
    casa: true,
    horaEntrada: '2022-01-20T05:02:22.000Z'
  },
  fornecedor: 'ALIMENTOS',
  lab: 'sim',
}

型号

import { DateTime } from 'luxon'
import { BaseModel, column } from '@ioc:Adonis/Lucid/Orm'

export default class Produto extends BaseModel {
  @column({ isPrimary: true })
  public id: number

  @column()
  public fornecedor: string

  @column()
  public lab: string

  @column()
  public veiculo: Object

  @column.dateTime({ autoCreate: true })
  public createdAt: DateTime

  @column.dateTime({ autoCreate: true, autoUpdate: true })
  public updatedAt: DateTime

迁移

public async up () {
    this.schema.createTable(this.tableName, (table) => {
      table.increments('id')
      table.string('fornecedor'
      table.string('lab')
      table.jsonb('veiculo')

      /**
       * Uses timestamptz for PostgreSQL and DATETIME2 for MSSQL
       */
      table.timestamp('created_at', { useTz: true })
      table.timestamp('updated_at', { useTz: true })
    })
  }

错误

Error: ER_BAD_FIELD_ERROR: Unknown column 'placa' in 'field list'

通过 await dataNfe.related('items').createMany(items)

解决