From 0150dc3ccbbd35debb0ced5b027a63314a0d5cfe Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?O=E6=98=B5=E7=A7=B0=E9=87=8D=E8=A6=81=E5=90=97O?= Date: Sat, 14 Mar 2026 14:24:09 +0800 Subject: [PATCH] =?UTF-8?q?feat(database):=20=E9=85=8D=E7=BD=AE=20MikroORM?= =?UTF-8?q?=20=E5=AE=9E=E4=BD=93=E7=94=9F=E6=88=90=E5=99=A8=E5=A4=84?= =?UTF-8?q?=E7=90=86=20bigint=20=E7=B1=BB=E5=9E=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 导入 EntityMetadata 和 Platform 类型定义 - 添加 entityGenerator 配置选项 - 实现 onProcessedMetadata 回调函数 - 将数据库 bigint 类型转换为 TypeScript number 类型 - 保留原始列类型信息用于数据库操作 --- node_api/src/mikro-orm.config.ts | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/node_api/src/mikro-orm.config.ts b/node_api/src/mikro-orm.config.ts index dc6644d..1befbc9 100644 --- a/node_api/src/mikro-orm.config.ts +++ b/node_api/src/mikro-orm.config.ts @@ -1,4 +1,4 @@ -import { defineConfig } from '@mikro-orm/mysql'; +import { type EntityMetadata, type Platform, defineConfig } from '@mikro-orm/mysql'; import { EntityGenerator } from '@mikro-orm/entity-generator'; import dotenv from 'dotenv'; import path from 'path'; @@ -15,4 +15,18 @@ export default defineConfig({ charset: 'utf8mb4', multipleStatements: true, extensions: [EntityGenerator], + // 生成实体时的配置 + entityGenerator: { + // 在元数据处理阶段将 bigint 转换为 number + onProcessedMetadata: (metadata: EntityMetadata[], _platform: Platform) => { + metadata.forEach((meta) => { + Object.values(meta.properties).forEach((prop) => { + // 将 bigint 类型转换为 number,但保留 columnTypes 为 bigint + if (prop.columnTypes?.[0] === 'bigint' || prop.type === 'bigint') { + prop.type = 'number'; + } + }); + }); + }, + }, });