数据库字段同步

//第一次建表同步字段
export const syncTableFields = async ({ form_id }) => {
  const find: any = await formModel.findByPk(form_id)

  const eleFind: any = formElementModel.findOne({ where: { form_id: form_id }, raw: true })
  if (eleFind) {
    return { code: 300, msg: '存在元素无法同步' }
  }

  const form_code: any = find?.code
  const table_name: any = find?.table_name
  const results = await getTableColumnsAndCommentsMySQL(table_name)
  const arr: any = []
  const checkType = (DATA_TYPE: string) => {
    switch (DATA_TYPE) {
      case 'char':
        return 'text'
      case 'varchar':
        return 'text'
      case 'float':
        return 'number'
      default:
        return 'text'
    }
  }
  results.forEach((item: any) => {
    const type = checkType(item.DATA_TYPE)

    let val = null
    if (item.COLUMN_DEFAULT) {
      val = item.COLUMN_DEFAULT
    }
    arr.push({
      form_id: form_id,
      form_code: form_code,
      name: item.COLUMN_NAME,
      title: item.COLUMN_COMMENT,
      type: type,
      val: val
    })
  })
  await formElementModel.bulkCreate(arr)
  console.log(results)
  return { code: 200, msg: '同步完成' }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

逍遥596607010

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值