feat(database): 配置 MikroORM 实体生成器处理 bigint 类型
- 导入 EntityMetadata 和 Platform 类型定义 - 添加 entityGenerator 配置选项 - 实现 onProcessedMetadata 回调函数 - 将数据库 bigint 类型转换为 TypeScript number 类型 - 保留原始列类型信息用于数据库操作
This commit is contained in:
@ -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';
|
||||
}
|
||||
});
|
||||
});
|
||||
},
|
||||
},
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user