SuperAPI AI 工具集

mikro-orm-v6-to-v7

编程与开发

查看项目

更新于 10-16 07:23

技能介绍

用途:指导 MikroORM v6 到 v7 的迁移。v7 为重大升级,核心变化包括原生 ESM、knex 换为 kysely、装饰器拆包,并要求 Node.js 22.17+、TypeScript 5.8+。主要能力与步骤:1) 包替换,移除 @mikro-orm/knex 并安装 @mikro-orm/sql,如用装饰器则安装 @mikro-orm/decorators;SQLite 场景按参考选择驱动。2) 更新 import 路径,装饰器改从 @mikro-orm/decorators/legacy 或 /es 导入,knex 导入改为 @mikro-orm/sql。3) API 替换,如 em.persistAndFlush(entity) 改为 em.persist(entity).flush(),em.removeAndFlush 同理拆开,em.nativeInsert(Entity, data) 改为 em.insert(Entity, data),em.getKnex() 改为 em.getKysely(),orm.getSchemaGenerator().createSchema() 改为 orm.schema.create(),MikroORM.initSync 改为 new MikroORM。4) 实体定义可选 defineEntity(推荐新项目)或 Legacy 装饰器(现有项目迁移)。5) 检查默认值变更,如加载策略 joined 改为 balanced、forceUtcTimezone 由 false 改为 true、嵌入前缀 absolute 改 relative、@Transactional 传播 REQUIRES_NEW 改 REQUIRED、processOnCreateHooksEarly 改 true;若现有数据按本地时区存储需在迁移前决定数据迁移或显式设 forceUtcTimezone: false。6) Edge/Bun/node:sqlite 需参考对应文档。限制:具体装饰器选择、已知问题与完整 API 对照需查阅配套参考;资料未提供价格、平台或效果信息。