250x250
Notice
Recent Posts
Recent Comments
관리 메뉴

탁월함은 어떻게 나오는가?

다중 Prisma 사용 시 "In case this error is unexpected for you, please report it in https://github.com/prisma/prisma/issues " 에러에 관해서 본문

[Snow-ball]프로그래밍(컴퓨터)/프로그래밍 실수

다중 Prisma 사용 시 "In case this error is unexpected for you, please report it in https://github.com/prisma/prisma/issues " 에러에 관해서

Snow-ball 2023. 11. 21. 18:53
반응형

 

원래 사용하던 서버말고 새로운 서버를 만들기 시작했다. 이번에 만들고 있는 프로젝트는 Prisma를 여러개 사용함으로써 여러개 Schema를 사용해야 했다.

 

다중 Prisma 설정을 해주고 generate 까지 처리했지만 프로젝트를 cli로 start하면 밑에 사진과 같은 에러가 발생하였다.

 

 

여러가지 삽질을 했지만, 결국은 PrismaService 모듈에서 PrismaClient 를 import 할 때 원래 사용하던 방식으로 하면 안되는 것이였다.

 

해결 방법에 대해서 작성해보겠다.

 

 

 


 

 

 

해결 전 코드:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
import { INestApplication, Injectable, OnModuleInit } from '@nestjs/common';
import { PrismaClient } from '@prisma/client';
 
@Injectable()
export class TestPrismaService extends PrismaClient implements OnModuleInit {
  constructor() {
    super({
      log: [
        { emit: 'event', level: 'query' },
        { emit: 'stdout', level: 'warn' },
      ],
      errorFormat: 'colorless',
    });
  }
  async onModuleInit() {
    await this.$connect();
  }
 
  async enableShutdownHooks(app: INestApplication) {
    this.$on('beforeExit', async () => {
      await app.close();
    });
  }
}
cs

 

 

 

해결 후 코드:

- import 주소는 폴더 구조에 따라 다를 수 있다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
import { INestApplication, Injectable, OnModuleInit } from '@nestjs/common';
import { PrismaClient } from '../../../../prisma/testDbClient';
 
@Injectable()
export class TestPrismaService extends PrismaClient implements OnModuleInit {
  constructor() {
    super({
      log: [
        { emit: 'event', level: 'query' },
        { emit: 'stdout', level: 'warn' },
      ],
      errorFormat: 'colorless',
    });
  }
  async onModuleInit() {
    await this.$connect();
  }
 
  async enableShutdownHooks(app: INestApplication) {
    this.$on('beforeExit', async () => {
      await app.close();
    });
  }
}
cs

 

 

반응형
Comments