You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

TypeORM 0.3.0及以上版本如何恢复旧版独立连接行为

TypeORM 0.3.x 恢复旧版连接使用行为方案

0.3.0版本TypeORM将核心连接入口从原有的Connection重构为DataSource,默认提供的createConnection兼容层没有做连接实例与全局连接池的隔离,调用close()时会直接销毁整个DataSource管理的连接池,这就是Pool is closed报错的直接原因。不需要降级版本,按以下方式调整即可完全恢复0.2.x版本的独立连接使用逻辑:

  • 初始化连接时,不要直接使用默认导出的createConnection方法,先手动实例化DataSource,再基于DataSource创建独立的Connection实例,参数和旧版完全兼容:
import { DataSource, Connection } from 'typeorm';

// 初始化DataSource,入参和旧版createConnection接收的配置完全一致
const dataSource = await new DataSource(options).initialize();
// 创建独立Connection实例,行为和0.2.x版本的Connection完全一致
const createdConnection: Connection = dataSource.createConnection();
  • 模型绑定连接的逻辑无需修改,和旧版写法完全相同:
MyModel.useConnection(createdConnection);
  • 任务执行完成后,只关闭当前创建的独立Connection实例即可,不会影响DataSource下的其他连接,也不会误销毁整个连接池:
await createdConnection.close();

关键注意点

  • 不要直接调用dataSource.destroy(),该方法会销毁整个DataSource管理的所有连接,和旧版close的作用范围不同
  • 多连接场景下每个DataSource可以创建多个互相隔离的Connection实例,和0.2.x版本多连接的运作逻辑完全一致
  • 实体层的useConnection等API在0.3.x版本全量兼容,原有业务绑定逻辑不需要调整

内容的提问来源于stack exchange,提问作者user17145524

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.26 10:18:21