Token导航 LogoToken导航TokenDH.com
研究检索需要联网github未标认证来源可访问许可证需确认审计通过

mikro-orm-v6-to-v7mikro orm v6 到 v7

Agent Skill

mikro-orm-v6-to-v7 用于查找、检索和筛选相关信息,适合在 Codex、Claude、Cursor、Gemini CLI 中需要根据关键词、任务场景或来源线索快速定位候选结果时使用。可结合来源仓库、安装命令和原始 README 继续核验具体用法。安装前建议确认权限范围、维护状态,以及是否会触发联网、命令执行或文件读写。

总安装

766

周安装

31

GitHub Stars

3

下载量

241
CodexClaudeCursorGemini CLI

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

GitHub

来源数

2

许可证

unknown

最后核验

2026-05-01

来源状态

来源可访问

安装方式

通过对话安装

复制提示词发给支持本地命令或 Skills 的 AI 助手,先确认命令和权限,再让它执行。

请帮我安装这个 Agent Skill:mikro-orm-v6-to-v7(mikro orm v6 到 v7)
来源仓库:https://github.com/wenerme/ai
仓库路径:skills/mikro-orm-v6-to-v7
安装命令:
npx skills add https://github.com/wenerme/ai --skill mikro-orm-v6-to-v7
安装前请先检查当前环境是否支持对应 CLI,并向我确认将要执行的命令、安装目录、联网范围和文件读写权限;确认后再执行。

命令行安装

复制命令到本机终端执行。该命令会通过 npx skills 从第三方来源获取 Skill;本站只展示命令,不托管安装包,也不自动执行。

skills.shnpx skills
npx skills add https://github.com/wenerme/ai --skill mikro-orm-v6-to-v7

简介

mikro-orm-v6-to-v7 用于查找、检索和筛选相关信息。

  • 适合在 Codex、Claude、Cursor、Gemini CLI 中根据关键词快速定位候选结果。
  • 通过 npx skills add 命令从指定仓库安装,需确认权限和维护状态。
  • 使用前建议核实是否会触发联网、命令执行或文件读写操作。
  • 适用宿主包括 Codex、Claude、Cursor、Gemini CLI,接入前应确认版本、权限和运行环境要求。

SKILL.md

MikroORM v6 → v7 迁移指南

概述

MikroORM v7 是一次重大版本升级。核心变化:原生 ESM、knex→kysely、装饰器拆包、Node.js 22.17+/TypeScript 5.8+ 最低要求。本技能覆盖迁移的所有关键路径,避免常见陷阱。

环境要求

项目v6v7
Node.js18+22.17+
TypeScript5.0+5.8+
模块系统CJS/ESM原生 ESM

迁移步骤总览

Step 1: 包替换

# 1. 替换核心包
pnpm remove @mikro-orm/knex
pnpm add @mikro-orm/sql

# 2. 安装装饰器包(如使用装饰器)
pnpm add @mikro-orm/decorators

# 3. SQLite 驱动选择(见 Edge-Ready 参考)
# better-sqlite3: pnpm add @mikro-orm/sqlite
# node:sqlite / bun:sqlite / D1: pnpm add @mikro-orm/sql kysely

Step 2: Import 路径更新

- import { Entity, PrimaryKey, Property } from '@mikro-orm/core';
+ import { Entity, PrimaryKey, Property } from '@mikro-orm/decorators/legacy';
+ // 或 ES spec 装饰器:
+ // import { Entity, PrimaryKey, Property } from '@mikro-orm/decorators/es';

- import { ... } from '@mikro-orm/knex';
+ import { ... } from '@mikro-orm/sql';

关于 ES vs Legacy 装饰器的选择和配置,必须阅读 references/decorators.md

Step 3: API 替换

- em.persistAndFlush(entity)
+ em.persist(entity).flush()

- em.removeAndFlush(entity)
+ em.remove(entity).flush()

- em.nativeInsert(Entity, data)
+ em.insert(Entity, data)

- em.getKnex()
+ em.getKysely()

- orm.getSchemaGenerator().createSchema()
+ orm.schema.create()

- em.find('User')
+ em.find(User)

- const orm = MikroORM.initSync({ ... })
+ const orm = new MikroORM({ ... })

完整 API 变更对照表见 references/api-changes.md

Step 4: Entity 定义适配

v7 提供两种实体定义方式:

方式 A: defineEntity(推荐,新项目)

import { defineEntity, PrimaryKey, Property } from '@mikro-orm/core';

const UserEntity = defineEntity({
  class: class User {},
  tableName: 'user',
  properties: {
    id: p.uuid().primary(),
    name: p.string(),
    email: p.string().nullable(),
    createdAt: p.datetime().onCreate(() => new Date()),
  },
});

方式 B: Legacy 装饰器(现有项目迁移)

import { BaseEntity, type Opt } from '@mikro-orm/core';
import { Entity, PrimaryKey, Property } from '@mikro-orm/decorators/legacy';

@Entity({ tableName: 'user' })
export class User extends BaseEntity {
  @PrimaryKey({ type: 'uuid', onCreate: () => crypto.randomUUID() })
  id!: string & Opt;

  @Property({ type: 'text' })
  name!: string;

  @Property({ type: 'text', nullable: true })
  email?: string;
}

两种方式的详细对比和场景建议见 references/decorators.md

Step 5: 默认值变更检查

配置项v6 默认v7 默认影响
加载策略joinedbalancedto-many 关系改为独立查询
forceUtcTimezonefalsetrue现有非 UTC 数据会被错误解读
嵌入属性前缀absoluterelative嵌套嵌入列名可能变化
@Transactional 传播REQUIRES_NEWREQUIRED默认加入已有事务
processOnCreateHooksEarlyfalsetrueonCreateem.create 中立即执行

关键: 如果现有数据以本地时区存储,升级前必须决定是否迁移数据或显式设 forceUtcTimezone: false

Step 6: Edge/Bun/node:sqlite 适配

如需在 Edge Runtime、Bun 或使用 node:sqlite 运行 MikroORM,必须阅读 references/edge-ready-sqlite.md

实体定义方式选择

需要实体定义?
  ├─ 新项目 / 无历史 decorator 代码 → defineEntity(类型推断更好)
  ├─ 现有项目迁移 / 大量 decorator 实体 → Legacy decorator
  └─ TC39 decorator 环境(Node 22.6+原生支持)→ ES spec decorator

常见错误快速定位

症状原因修复
Cannot find module '@mikro-orm/knex'包重命名替换为 @mikro-orm/sql
persistAndFlush is not a functionAPI 移除em.persist(entity).flush()
nativeInsert is not a function方法重命名em.insert(Entity, data)
Decorator SyntaxError (SWC/Vite)装饰器编译未配置decorators.md
Value for X.id is requiredonCreate 未配置PrimaryKey 加 onCreate
TypedArray.prototype.join incompatibleBlob clone 问题known-issues.md
string reference not supported字符串引用移除改为类引用 () => Entity
Schema diff 出现意外变更默认值变更检查 Step 5 默认值表

更多已知问题和解决方案见 references/known-issues.md

迁移检查清单

  • Node.js ≥ 22.17,TypeScript ≥ 5.8
  • @mikro-orm/knex@mikro-orm/sql
  • 安装 @mikro-orm/decorators,更新 import
  • 替换 persistAndFlush / removeAndFlush
  • 替换字符串引用为类引用
  • 更新 SchemaGenerator / Migrator / Seeder 方法名
  • QueryBuilder .execute() / .getResult() 替代直接 await
  • 更新 driverOptions 去掉 connection 嵌套
  • 检查 forceUtcTimezone 对现有数据的影响
  • 更新 Formula/Index/Check 回调签名(quote 辅助函数)
  • 运行 orm.schema.update({diff: true}) 检查 schema 变更
  • 运行 typecheck 和测试验证

参考文档

适合场景

01

用户想查找某类 Agent Skill 时

02

需要根据任务场景推荐可安装能力包时

03

需要对比不同来源的安装命令和来源信息时

能力概览

能力 1

按任务关键词查找相关 Skills

能力 2

展示可复制的安装命令

能力 3

保留来源站点、仓库和原始说明,方便继续核验

能力 4

展示第三方安全扫描或审计结果

安装后应在对应宿主中按原始 README 的触发条件使用;具体调用方式请以来源页面和 README 为准。

平台分布

Codex

39.31%
按下载量换算95

Claude

30.9%
按下载量换算74

Cursor

18.57%
按下载量换算45

Gemini CLI

8.53%
按下载量换算21

安全审计

Gen Agent Trust Hub

通过

Socket

通过

Snyk

通过

权限和风险

需要联网

该 Skill 可能需要联网访问来源站点、仓库或外部 API;具体网络访问范围需要结合源码和 README 复核。

安装前确认

本站仅展示第三方公开信息,不托管安装包,不提供自动安装或运行环境。安装前应自行审查源码、依赖和命令行为。当前只有一个来源,正式发布前建议补源仓库或其他目录站核验。

来源信息

继续浏览同类 Skills