在Turborepo中配置TypeORM连接PostgreSQL创建表遇阻
解决Turborepo工作区中TypeORM访问子项目实体的问题
针对你在Turborepo工作区中,根目录安装TypeORM、子目录为NestJS项目时无法识别实体的问题,可通过以下方式解决:
修正实体路径配置
由于TypeORM在根目录运行,实体路径需要相对于根目录来配置。假设你的NestJS子项目位于apps/nest-api,编译后的实体文件路径应改为:entities: ['apps/nest-api/dist/src/**/*.entity.js'],若使用TS直接运行(未编译),则用TS文件路径:
entities: ['apps/nest-api/src/**/*.entity.ts'],更稳妥的方式是用
path.resolve生成绝对路径,避免相对路径歧义:const path = require('path'); // ... entities: [path.resolve(__dirname, 'apps/nest-api/dist/src/**/*.entity.js')],检查Turborepo构建输出配置
确保你的Turborepo配置文件(turbo.json)中,子项目的outputs包含dist目录,保证构建产物能被根目录的TypeORM访问到:{ "pipeline": { "build": { "outputs": ["dist/**"] } } }显式引入实体类(兜底方案)
若路径匹配始终有问题,可直接在配置中导入实体类,跳过路径解析环节:import { UserEntity } from './apps/nest-api/src/user.entity'; import { OrderEntity } from './apps/nest-api/src/order.entity'; // ... entities: [UserEntity, OrderEntity],验证配置有效性
保留synchronize: true和logging: 'all',启动项目后查看TypeORM日志,确认是否有"Loading entities"相关日志,以及是否存在实体加载失败的报错信息。
内容的提问来源于stack exchange,提问作者Mirrow
相关产品推荐
相关产品推荐

