如何使用TypeORM迁移指定特定数据库连接?
指定TypeORM连接执行迁移的方法
当你配置了多个数据库连接后,只需要通过TypeORM CLI的参数或者代码调用时指定连接名称,就能针对特定连接执行迁移操作了。下面是几种实用的实现方式:
1. 直接用TypeORM CLI命令指定
TypeORM CLI提供了--connection(简写为-c)参数,用来匹配你在ormconfig.json里定义的name字段值,精准定位要操作的连接。
给你几个常用命令的示例:
- 运行所有待执行的迁移:
typeorm migration:run --connection default - 根据实体变化生成新的迁移文件:
typeorm migration:generate -n UserTableUpdate --connection default - 回滚最近一次执行的迁移:
typeorm migration:revert --connection default
2. 在package.json中配置脚本(更省心)
如果你不想每次都手动敲参数,可以把指定连接的迁移命令封装成npm脚本,放在项目的package.json里:
{ "scripts": { "migrate:default": "typeorm migration:run --connection default", "migrate:make:default": "typeorm migration:generate -n NewFeatureMigration --connection default", "migrate:undo:default": "typeorm migration:revert --connection default" } }
之后只需运行对应的npm命令即可,比如:
npm run migrate:default
3. 代码中手动执行(适合自动化场景)
如果是在测试流程或者自动化脚本里需要触发迁移,可以通过TypeORM的API指定连接来操作:
import { getConnection } from "typeorm"; // 封装一个执行指定连接迁移的函数 async function runConnectionMigrations(connectionName: string) { const connection = await getConnection(connectionName); // 执行迁移 await connection.runMigrations(); // 若需要回滚,可替换为:await connection.undoLastMigration(); } // 调用函数,指定目标连接 runConnectionMigrations("default").catch(err => { console.error("迁移执行失败:", err); process.exit(1); });
需要注意的是,你的ormconfig.json是数组格式,TypeORM会自动识别每个对象的name属性,只要确保你指定的名称和配置里的完全一致(大小写敏感)就不会出错。
内容的提问来源于stack exchange,提问作者Blake
相关产品推荐
相关产品推荐

