苦等十年!Nodejs 终于发布全栈神器 TypeORM 1.0!

0 阅读1分钟

TypeORM 1.0.0 已于 2026年5月正式发布,距首个版本发布已过去近10年,是一次里程碑式的重大更新。

图片

一、核心定位

  • 长期 deprecated API 全部清除,架构全面现代化。
  • 最低要求 Node.js 20+、ES2023,不再支持 Node.js 16/18。
  • 统一使用 DataSource**,彻底移除旧版 Connection / createConnection。

二、主要破坏性变更(必看)

  1. 运行时环境
    • Node.js 最低 20.x;目标 ES2023。
    • 非 Node 平台二进制用 Uint8Array 替代 Buffer。
  2. 连接体系重构
    • connection.close() → dataSource.destroy()
    • connection.isConnected → dataSource.isInitialized
    • ✅ 保留:new DataSource({ ... }).initialize()
    • ❌ 移除:Connection 类、createConnection()connection.close()connection.isConnected
    • 对应替换:
  3. MySQL 相关
    • 仅支持 mysql2,移除旧 mysql 客户端。
    • legacySpatialSupport 默认 false,用标准 ST_GeomFromText
    • 移除 widthzerofill 列选项(MySQL 8.4 已移除)。
  4. 查询与数据校验
    • find({ where: { text: null } }) 不再静默匹配所有,直接抛错。
    • QueryBuilder orderBy 增加运行时校验,防注入。

三、重要新特性

  • QueryRunner 支持 await using(TS 5.2+),自动资源释放。
  • 所有 drop 方法支持 ifExists(列、索引、主键、外键等)。
  • DataSource 级默认事务隔离级别,统一全局事务行为。
  • 依赖精简:glob → tinyglobby,移除 rimraf,哈希**改用原生 crypto。

四、升级要点(从 0.3.x)

  1. 升级 Node.js 到 20+、TS 到 5.2+
  2. 全局替换:
    • createConnection() → new DataSource().initialize()
    • connection 实例 → dataSource
  3. 检查并移除所有已废弃装饰器/选项。
  4. NestJS 用户:等待  @nestjs/typeorm 适配版(v11 暂不兼容)。

五、安装

npm install typeorm@1.0.0
# 或
yarn add typeorm@1.0.0