//第一次建表同步字段
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: '同步完成' }
}
数据库字段同步
最新推荐文章于 2024-10-16 16:26:58 发布