【发布时间】:2022-10-20 17:42:19
【问题描述】:
我卡在这里。TypeORMError:未找到 Vendor#crmHistories 的实体元数据。检查您是否指定了正确的实体对象,以及它是否在连接选项中连接。我的数据库.config.ts
export default {
type: process.env.DB_TYPE,
host: process.env.DB_HOST,
port: process.env.DB_PORT,
username: process.env.DB_USERNAME,
password: process.env.DB_PASSWORD,
database: process.env.DB_NAME,
// entities: [path.resolve('dist/modules/**/*.entity{.ts,.js}')],
entities: [__dirname + '/../**/*.entity{.ts,.js}'],
synchronize: true,
extra: {
ssl: {
rejectUnauthorized: false,
},
},
};
我的供应商模块.ts
import { Module } from '@nestjs/common';
import { VendorController } from './controllers/vendor.controller';
import { Vendor } from './entities/vendor.entity';
import { TypeOrmModule } from '@nestjs/typeorm';
import { HttpModule } from '@nestjs/axios';
import { CqrsModule } from '@nestjs/cqrs';
import { AdminVendorController } from './controllers/admin-vendor.controller';
import { CrmVendorController } from './controllers/crm-vendor.controller';
import { PublicVendorController } from './controllers/public-vendor.controller';
import { SecretVendorController } from './controllers/secret-vendor.controller';
import { TokenService } from 'src/common/services/token.service';
import { TruckCategory } from '@modules/truck-category/entities/truck-category.entity';
import { TruckCategoryModule } from '@modules/truck-category/truck-category.module';
import { VendorService } from './services/vendor.service';
import { Slugs } from './entities/slug.entity';
import { UserService } from '@common/services/user.service';
import { CompanyService } from '@common/services/company.service';
import { TruckSize } from '@modules/truck-size/entities/truck-size.entity';
import { TruckSizeModule } from '@modules/truck-size/truck-size.module';
import { CrmHistory } from './entities/crm-history';
@Module({
imports: [
TypeOrmModule.forFeature([
Vendor,
Slugs,
TruckCategory,
TruckSize,
CrmHistory,
]),
TruckSizeModule,
TruckCategoryModule,
HttpModule,
CqrsModule,
],
controllers: [
VendorController,
AdminVendorController,
CrmVendorController,
PublicVendorController,
SecretVendorController,
],
providers: [VendorService, TokenService, UserService, CompanyService],
exports: [VendorService],
})
export class VendorModule {}
我的crm-history.ts实体是
import { AbstractEntity } from '@common/abstract-entity';
import { Column, Entity, Index, ManyToOne } from 'typeorm';
import { Vendor } from './vendor.entity';
export interface crmType {
userId: string;
role: string;
}
@Entity('vendor_crm_histories')
export class CrmHistory extends AbstractEntity {
@Index()
@Column({
type: 'varchar',
nullable: true,
unique: true,
})
kam: crmType;
@Index()
@Column({
type: 'varchar',
nullable: true,
unique: true,
})
clusterHead: crmType;
@ManyToOne(() => Vendor, (vendor) => vendor.crmHistories)
vendor: Vendor;
}
我的供应商.ts实体
import { AbstractEntity } from 'src/common/abstract-entity';
import { Column, Entity, Index, JoinColumn, OneToMany } from 'typeorm';
import {
Gender,
MakePayoutDay,
SubscriptionType,
VendorStatus,
} from '../enums';
import { OriginDistrictsDto } from '../dtos/create-vendor.dto';
import { TruckCategory } from '@modules/truck-category/entities/truck-category.entity';
import { TruckSize } from '@modules/truck-size/entities/truck-size.entity';
import { UserType } from '@common/decorators/user.decorator';
import { Slugs } from './slug.entity';
import { CrmHistory } from './crm-history';
@Entity('vendors')
export class Vendor extends AbstractEntity {
@Index({ unique: true })
@Column({
type: 'varchar',
nullable: true,
unique: true,
})
userId: string; //vendor userId is given automatically from user service.
@Index()
@Column({
type: 'varchar',
nullable: true,
default: '',
})
fullName: string; //vendor's full name
@Index()
@Column({
type: 'varchar',
nullable: true,
})
email: string; //vendor's email address
@Index({ unique: true })
@Column({
type: 'varchar',
nullable: false,
unique: true,
})
phone: string; //vendor's unique phone number
@Column({
type: 'varchar',
nullable: true,
default: null,
})
profilePicture: string;
@Index()
@Column({
type: 'boolean',
nullable: false,
default: false,
})
isEnabled: boolean;
@Index()
@Column({
type: 'boolean',
nullable: false,
default: false,
})
isVerified: boolean;
@Index()
@Column({
type: 'varchar',
nullable: false,
default: 'vendor',
})
role: string; //vendor's role is vendor.
@Index()
@Column({
type: 'jsonb',
nullable: false,
default: {},
})
originDistrict: OriginDistrictsDto;
@Column({
type: 'varchar',
nullable: true,
})
tln: string;
@Index()
@Column({
type: 'varchar',
nullable: true,
})
companyName: string;
@Column({
type: 'varchar',
nullable: true,
})
companyAddress: string;
@Column({
type: 'jsonb',
nullable: false,
default: {},
})
assignKam: UserType; // assignee should be vendor team member(kam)
@Column({
type: 'jsonb',
nullable: false,
default: {},
})
assignCluster: UserType; // assignee should be vendor team member(kam)
@Column({
type: 'integer',
nullable: false,
default: 0,
})
vehicleProvide: number;
@Column({
type: 'enum',
enum: MakePayoutDay,
nullable: false,
default: MakePayoutDay.MONDAY,
})
makePayout: MakePayoutDay;
@Column({
type: 'enum',
enum: SubscriptionType,
nullable: false,
default: SubscriptionType.BRONZE,
})
subsType: SubscriptionType;
@Index()
@Column({
type: 'enum',
enum: Gender,
nullable: false,
default: Gender.MALE,
})
gender: Gender;
@Index()
@Column({
type: 'enum',
enum: VendorStatus,
nullable: false,
default: VendorStatus.ACTIVE,
})
status: VendorStatus; //vendor availability.
@OneToMany(() => TruckCategory, (cat) => cat.vendor)
@JoinColumn()
truckCategories: TruckCategory[];
@OneToMany(() => TruckSize, (size) => size.vendor)
@JoinColumn()
truckSizes: TruckSize[];
@OneToMany(() => Slugs, (slug) => slug.vendor)
@JoinColumn()
slugs: Slugs[];
@OneToMany(() => CrmHistory, (crmHistories) => crmHistories.vendor)
@JoinColumn()
crmHistories: CrmHistory[];
}
我的错误是
错误 [TypeOrmModule] 无法连接到数据库。重试 (1)... TypeORMError: Vendor#crmHistories 的实体元数据不是 成立。检查您是否指定了正确的实体对象以及它是否 在连接选项中连接。 在/home/loop-pc/loop/loop-supplier/src/metadata-builder/EntityMetadataBuilder.ts:1089:23 在 Array.forEach () 在 EntityMetadataBuilder.computeInverseProperties (/home/loop-pc/loop/loop-supplier/src/metadata-builder/EntityMetadataBuilder.ts:1079:34) 在/home/loop-pc/loop/loop-supplier/src/metadata-builder/EntityMetadataBuilder.ts:158:18 在 Array.forEach () 在 EntityMetadataBuilder.build (/home/loop-pc/loop/loop-supplier/src/metadata-builder/EntityMetadataBuilder.ts:157:25) 在 ConnectionMetadataBuilder.buildEntityMetadatas (/home/loop-pc/loop/loop-supplier/src/connection/ConnectionMetadataBuilder.ts:106:11) 在 DataSource.buildMetadatas (/home/loop-pc/loop/loop-supplier/src/data-source/DataSource.ts:670:13) 在 DataSource.initialize (/home/loop-pc/loop/loop-supplier/src/data-source/DataSource.ts:242:13) [巢] 11704 - 08/27/2022,上午 9:58:19 错误 [TypeOrmModule] 无法 连接到数据库。正在重试 (2)... TypeORMError: Entity 未找到 Vendor#crmHistories 的元数据。检查您是否指定 一个正确的实体对象,如果它在连接中连接 选项。 在/home/loop-pc/loop/loop-supplier/src/metadata-builder/EntityMetadataBuilder.ts:1089:23 在 Array.forEach () 在 EntityMetadataBuilder.computeInverseProperties (/home/loop-pc/loop/loop-supplier/src/metadata-builder/EntityMetadataBuilder.ts:1079:34) 在/home/loop-pc/loop/loop-supplier/src/metadata-builder/EntityMetadataBuilder.ts:158:18 在 Array.forEach () 在 EntityMetadataBuilder.build (/home/loop-pc/loop/loop-supplier/src/metadata-builder/EntityMetadataBuilder.ts:157:25) 在 ConnectionMetadataBuilder.buildEntityMetadatas (/home/loop-pc/loop/loop-supplier/src/connection/ConnectionMetadataBuilder.ts:106:11) 在 DataSource.buildMetadatas (/home/loop-pc/loop/loop-supplier/src/data-source/DataSource.ts:670:13) 在 DataSource.initialize (/home/loop-pc/loop/loop-supplier/src/data-source/DataSource.ts:242:13) [巢] 11704 - 08/27/2022,上午 9:58:23 错误 [TypeOrmModule] 无法 连接到数据库。正在重试 (3)... TypeORMError: Entity 未找到 Vendor#crmHistories 的元数据。检查您是否指定 一个正确的实体对象,如果它在连接中连接 选项。 在/home/loop-pc/loop/loop-supplier/src/metadata-builder/EntityMetadataBuilder.ts:1089:23 在 Array.forEach () 在 EntityMetadataBuilder.computeInverseProperties (/home/loop-pc/loop/loop-supplier/src/metadata-builder/EntityMetadataBuilder.ts:1079:34) 在/home/loop-pc/loop/loop-supplier/src/metadata-builder/EntityMetadataBuilder.ts:158:18 在 Array.forEach () 在 EntityMetadataBuilder.build (/home/loop-pc/loop/loop-supplier/src/metadata-builder/EntityMetadataBuilder.ts:157:25) 在 ConnectionMetadataBuilder.buildEntityMetadatas (/home/loop-pc/loop/loop-supplier/src/connection/ConnectionMetadataBuilder.ts:106:11) 在 DataSource.buildMetadatas (/home/loop-pc/loop/loop-supplier/src/data-source/DataSource.ts:670:13) 在 DataSource.initialize (/home/loop-pc/loop/loop-supplier/src/data-source/DataSource.ts:242:13) [巢] 11704 - 08/27/2022,上午 9:58:26 错误 [TypeOrmModule] 无法 连接到数据库。正在重试 (4)... TypeORMError: Entity 未找到 Vendor#crmHistories 的元数据。检查您是否指定 一个正确的实体对象,如果它在连接中连接 选项。 在/home/loop-pc/loop/loop-supplier/src/metadata-builder/EntityMetadataBuilder.ts:1089:23 在 Array.forEach () 在 EntityMetadataBuilder.computeInverseProperties (/home/loop-pc/loop/loop-supplier/src/metadata-builder/EntityMetadataBuilder.ts:1079:34) 在/home/loop-pc/loop/loop-supplier/src/metadata-builder/EntityMetadataBuilder.ts:158:18 在 Array.forEach () 在 EntityMetadataBuilder.build (/home/loop-pc/loop/loop-supplier/src/metadata-builder/EntityMetadataBuilder.ts:157:25) 在 ConnectionMetadataBuilder.buildEntityMetadatas (/home/loop-pc/loop/loop-supplier/src/connection/ConnectionMetadataBuilder.ts:106:11) 在 DataSource.buildMetadatas (/home/loop-pc/loop/loop-supplier/src/data-source/DataSource.ts:670:13) 在 DataSource.initialize (/home/loop-pc/loop/loop-supplier/src/data-source/DataSource.ts:242:13) [巢] 11704 - 2022 年 8 月 27 日,上午 9:58:30 错误 [TypeOrmModule] 无法 连接到数据库。正在重试 (5)... TypeORMError: Entity 未找到 Vendor#crmHistories 的元数据。检查您是否指定 一个正确的实体对象,如果它在连接中连接 选项。 在/home/loop-pc/loop/loop-supplier/src/metadata-builder/EntityMetadataBuilder.ts:1089:23 在 Array.forEach () 在 EntityMetadataBuilder.computeInverseProperties (/home/loop-pc/loop/loop-supplier/src/metadata-builder/EntityMetadataBuilder.ts:1079:34) 在/home/loop-pc/loop/loop-supplier/src/metadata-builder/EntityMetadataBuilder.ts:158:18 在 Array.forEach () 在 EntityMetadataBuilder.build (/home/loop-pc/loop/loop-supplier/src/metadata-builder/EntityMetadataBuilder.ts:157:25) 在 ConnectionMetadataBuilder.buildEntityMetadatas (/home/loop-pc/loop/loop-supplier/src/connection/ConnectionMetadataBuilder.ts:106:11) 在 DataSource.buildMetadatas (/home/loop-pc/loop/loop-supplier/src/data-source/DataSource.ts:670:13) 在 DataSource.initialize (/home/loop-pc/loop/loop-supplier/src/data-source/DataSource.ts:242:13) [巢] 11704 - 08/27/2022,上午 9:58:33 错误 [TypeOrmModule] 无法 连接到数据库。正在重试 (6)... TypeORMError: Entity 未找到 Vendor#crmHistories 的元数据。检查您是否指定 一个正确的实体对象,如果它在连接中连接 选项。 在/home/loop-pc/loop/loop-supplier/src/metadata-builder/EntityMetadataBuilder.ts:1089:23 在 Array.forEach () 在 EntityMetadataBuilder.computeInverseProperties (/home/loop-pc/loop/loop-supplier/src/metadata-builder/EntityMetadataBuilder.ts:1079:34) 在/home/loop-pc/loop/loop-supplier/src/metadata-builder/EntityMetadataBuilder.ts:158:18 在 Array.forEach () 在 EntityMetadataBuilder.build (/home/loop-pc/loop/loop-supplier/src/metadata-builder/EntityMetadataBuilder.ts:157:25) 在 ConnectionMetadataBuilder.buildEntityMetadatas (/home/loop-pc/loop/loop-supplier/src/connection/ConnectionMetadataBuilder.ts:106:11) 在 DataSource.buildMetadatas (/home/loop-pc/loop/loop-supplier/src/data-source/DataSource.ts:670:13) 在 DataSource.initialize (/home/loop-pc/loop/loop-supplier/src/data-source/DataSource.ts:242:13) [巢] 11704 - 2022 年 8 月 27 日,上午 9:58:37 错误 [TypeOrmModule] 无法 连接到数据库。正在重试 (7)... TypeORMError: Entity 未找到 Vendor#crmHistories 的元数据。检查您是否指定 一个正确的实体对象,如果它在连接中连接 选项。 在/home/loop-pc/loop/loop-supplier/src/metadata-builder/EntityMetadataBuilder.ts:1089:23 在 Array.forEach () 在 EntityMetadataBuilder.computeInverseProperties (/home/loop-pc/loop/loop-supplier/src/metadata-builder/EntityMetadataBuilder.ts:1079:34) 在/home/loop-pc/loop/loop-supplier/src/metadata-builder/EntityMetadataBuilder.ts:158:18 在 Array.forEach () 在 EntityMetadataBuilder.build (/home/loop-pc/loop/loop-supplier/src/metadata-builder/EntityMetadataBuilder.ts:157:25) 在 ConnectionMetadataBuilder.buildEntityMetadatas (/home/loop-pc/loop/loop-supplier/src/connection/ConnectionMetadataBuilder.ts:106:11) 在 DataSource.buildMetadatas (/home/loop-pc/loop/loop-supplier/src/data-source/DataSource.ts:670:13) 在 DataSource.initialize (/home/loop-pc/loop/loop-supplier/src/data-source/DataSource.ts:242:13) [巢] 11704 - 2022 年 8 月 27 日,上午 9:58:40 错误 [TypeOrmModule] 无法 连接到数据库。正在重试 (8)... TypeORMError: Entity 未找到 Vendor#crmHistories 的元数据。检查您是否指定 一个正确的实体对象,如果它在连接中连接 选项。 在/home/loop-pc/loop/loop-supplier/src/metadata-builder/EntityMetadataBuilder.ts:1089:23 在 Array.forEach () 在 EntityMetadataBuilder.computeInverseProperties (/home/loop-pc/loop/loop-supplier/src/metadata-builder/EntityMetadataBuilder.ts:1079:34) 在/home/loop-pc/loop/loop-supplier/src/metadata-builder/EntityMetadataBuilder.ts:158:18 在 Array.forEach () 在 EntityMetadataBuilder.build (/home/loop-pc/loop/loop-supplier/src/metadata-builder/EntityMetadataBuilder.ts:157:25) 在 ConnectionMetadataBuilder.buildEntityMetadatas (/home/loop-pc/loop/loop-supplier/src/connection/ConnectionMetadataBuilder.ts:106:11) 在 DataSource.buildMetadatas (/home/loop-pc/loop/loop-supplier/src/data-source/DataSource.ts:670:13) 在 DataSource.initialize (/home/loop-pc/loop/loop-supplier/src/data-source/DataSource.ts:242:13) [巢] 11704 - 08/27/2022,上午 9:58:44 错误 [TypeOrmModule] 无法 连接到数据库。重试 (9)... TypeORMError: Entity 未找到 Vendor#crmHistories 的元数据。检查您是否指定 一个正确的实体对象,如果它在连接中连接 选项。 在/home/loop-pc/loop/loop-supplier/src/metadata-builder/EntityMetadataBuilder.ts:1089:23 在 Array.forEach () 在 EntityMetadataBuilder.computeInverseProperties (/home/loop-pc/loop/loop-supplier/src/metadata-builder/EntityMetadataBuilder.ts:1079:34) 在/home/loop-pc/loop/loop-supplier/src/metadata-builder/EntityMetadataBuilder.ts:158:18 在 Array.forEach () 在 EntityMetadataBuilder.build (/home/loop-pc/loop/loop-supplier/src/metadata-builder/EntityMetadataBuilder.ts:157:25) 在 ConnectionMetadataBuilder.buildEntityMetadatas (/home/loop-pc/loop/loop-supplier/src/connection/ConnectionMetadataBuilder.ts:106:11) 在 DataSource.buildMetadatas (/home/loop-pc/loop/loop-supplier/src/data-source/DataSource.ts:670:13) 在 DataSource.initialize (/home/loop-pc/loop/loop-supplier/src/data-source/DataSource.ts:242:13) [巢] 11704 - 2022 年 8 月 27 日,上午 9:58:44 错误 [异常处理程序] 未找到 Vendor#crmHistories 的实体元数据。检查你是否 指定了一个正确的实体对象,如果它在 连接选项。 TypeORMError:实体元数据 未找到供应商#crmHistories。检查您是否指定了正确的 实体对象以及它是否在连接选项中连接。 在/home/loop-pc/loop/loop-supplier/src/metadata-builder/EntityMetadataBuilder.ts:1089:23 在 Array.forEach () 在 EntityMetadataBuilder.computeInverseProperties (/home/loop-pc/loop/loop-supplier/src/metadata-builder/EntityMetadataBuilder.ts:1079:34) 在/home/loop-pc/loop/loop-supplier/src/metadata-builder/EntityMetadataBuilder.ts:158:18 在 Array.forEach () 在 EntityMetadataBuilder.build (/home/loop-pc/loop/loop-supplier/src/metadata-builder/EntityMetadataBuilder.ts:157:25) 在 ConnectionMetadataBuilder.buildEntityMetadatas (/home/loop-pc/loop/loop-supplier/src/connection/ConnectionMetadataBuilder.ts:106:11) 在 DataSource.buildMetadatas (/home/loop-pc/loop/loop-supplier/src/data-source/DataSource.ts:670:13) 在 DataSource.initialize (/home/loop-pc/loop/loop-supplier/src/data-source/DataSource.ts:242:13)
如果我删除 crm 实体,它会像以前一样正常工作。我在前一天创建了几张桌子。但是这个实体向我展示了这种错误。
【问题讨论】:
标签: typescript nestjs entity metadata typeorm