feat(database): 配置 MikroORM 实体生成器处理 bigint 类型

- 导入 EntityMetadata 和 Platform 类型定义
- 添加 entityGenerator 配置选项
- 实现 onProcessedMetadata 回调函数
- 将数据库 bigint 类型转换为 TypeScript number 类型
- 保留原始列类型信息用于数据库操作
This commit is contained in:
2026-03-14 14:24:09 +08:00
parent c59a3c798d
commit 0150dc3ccb

View File

@ -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';
}
});
});
},
},
});