프로그래밍(Basic)/NestJS

Nest - EntityMetadataNotFoundError

Bami 2024. 1. 12. 15:17
728x90
반응형

EntityMetadataNotFoundError는 TypeORM이 데이터베이스 테이블과 연결될 엔티티의 메타데이터를 찾을 수 없을 때 발생하는 오류입니다.

이 문제는 대개 엔티티 파일의 위치가 잘못되었거나, TypeOrmModule에 엔티티를 잘못 등록했을 때 발생하게 되는데요.

 

저는 아래와 같이 entities를 지정한 상태에서 에러가 나서

import { Module } from '@nestjs/common';
import { TypeOrmModule } from '@nestjs/typeorm';
import { UsersModule } from './users/users.module';
// Other imports...

@Module({
  imports: [
    TypeOrmModule.forRoot({
      type: 'mysql',
      host: 'localhost',
      port: 3306,
      username: process.env.DB_USER,
      password: process.env.DB_PW,
      database: process.env.DB_NAME,
      entities: ['entities/*.js'],
      synchronize: false,
      logging: true,
      keepConnectionAlive: true,
      migrations: [__dirname + '/src/migrations/*.ts'],
    }),
    UsersModule, // Ensure UsersModule is included here
    // Other modules...
  ],
  controllers: [/* controllers here */],
  providers: [/* providers here */],
})
export class AppModule {}

 

import { WorkspacesModule } from './workspaces/workspaces.module';
import { ChannelsModule } from './channels/channels.module';
import { DmsModule } from './dms/dms.module';
import { UsersService } from './users/users.service';
import * as process from 'process';
import { TypeOrmModule } from '@nestjs/typeorm';
import { Users } from './entities/Users';
import { Channels } from './entities/Channels';
import { Dms } from './entities/Dms';
import { Channelchats } from './entities/Channelchats';
import { Mentions } from './entities/Mentions';
import { Channelmembers } from './entities/Channelmembers';
import { Workspacemembers } from './entities/Workspacemembers';
import { Workspaces } from './entities/Workspaces';

@Module({
  imports: [
    TypeOrmModule.forFeature([Users]),
    ConfigModule.forRoot({ isGlobal: true }),
    UsersModule,
    WorkspacesModule,
    ChannelsModule,
    DmsModule,
    TypeOrmModule.forRoot({
      type: 'mysql',
      host: 'localhost',
      port: 3306,
      username: process.env.DB_USER,
      password: process.env.DB_PW,
      database: process.env.DB_NAME,
      entities: [
        Users,
        Channels,
        Dms,
        Channelchats,
        Mentions,
        Channelmembers,
        Workspacemembers,
        Workspaces,
      ],
      synchronize: false,
      logging: true,
      keepConnectionAlive: true,
      migrations: [__dirname + '/src/migrations/*.ts'],
    }),
  ],
  controllers: [AppController],
  providers: [AppService, UsersService],
})

위와 같이 하나하나 지정해주는 형태로 사용하여 해결하였습니다.

728x90
반응형