-
Notifications
You must be signed in to change notification settings - Fork 0
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
resolve package.json dependency, and update prisma 4 to 5 #132
Changes from 3 commits
b2fef3e
005e389
f963ae9
db4f4c3
b9f1e3d
6ad616b
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Large diffs are not rendered by default.
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -4,15 +4,16 @@ | |
import session from 'express-session'; | ||
import { Server } from 'http'; | ||
import { AppModule } from '../app.module'; | ||
import { PrismaService } from '../prisma/prisma.service'; | ||
import settings from '../settings'; | ||
// import { AuthGuard, MockAuthGuard } from '../../common/guards/auth.guard' | ||
import morgan = require('morgan'); | ||
import * as process from 'node:process'; | ||
|
||
let cachedServer: Server; | ||
|
||
async function bootstrap() { | ||
const { NODE_ENV } = process.env; | ||
|
||
const app = await NestFactory.create(AppModule); | ||
|
||
|
@@ -60,8 +61,8 @@ | |
}), | ||
); | ||
|
||
const prismaService = app.get(PrismaService); | ||
await prismaService.enableShutdownHooks(app); | ||
// const prismaService = app.get(PrismaService); | ||
app.enableShutdownHooks(); | ||
return app.listen(8000); | ||
} | ||
|
||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 이 코드 패치에 대한 간단한 코드 리뷰입니다. 버그 위험
개선 제안
결론적으로, 이 변화를 고수하는 것이 아닌 원래 코드로 복구하는 것을 추천합니다. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 코드 리뷰를 진행하겠습니다. 다음은 수정 사항에 대한 간단한 분석입니다.
이러한 점들을 고려하여 코드를 개선하는 것이 좋습니다. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 코드 패치를 검토한 결과, 다음과 같은 검토 사항을 제안합니다:
위 사항들을 참고하여 코드 품질을 개선하세요. |
||
|
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -59,16 +59,18 @@ export class TimetableMiddleware | |
await prisma.subject_lecture.update({ | ||
where: { id: id }, | ||
data: { | ||
num_people: await prisma.timetable_timetable.count({ | ||
distinct: ['user_id'], | ||
where: { | ||
timetable_timetable_lectures: { | ||
some: { | ||
lecture_id: id, | ||
num_people: ( | ||
await prisma.timetable_timetable.findMany({ | ||
distinct: ['user_id'], | ||
where: { | ||
timetable_timetable_lectures: { | ||
some: { | ||
lecture_id: id, | ||
}, | ||
}, | ||
}, | ||
}, | ||
}), | ||
}) | ||
).length, | ||
}, | ||
}); | ||
}); | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 코드 패치 리뷰: 버그 위험
개선 제안
결론적으로, 성능과 안정성을 고려하여 원래의 There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 코드 패치에 대한 리뷰는 다음과 같습니다:
개선된 코드 예시는 다음과 같습니다: await prisma.subject_lecture.update({
where: { id: id },
data: {
num_people: (await prisma.timetable_timetable.count({
distinct: ['user_id'],
where: {
timetable_timetable_lectures: {
some: {
lecture_id: id,
},
},
},
})) ?? 0,
},
}); 이렇게 하는 것이 성능과 가독성을 동시에 향상시킬 수 있습니다. |
||
|
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -108,16 +108,18 @@ export class TimetableLectureMiddleware | |
await prisma.subject_lecture.update({ | ||
where: { id: lectureId }, | ||
data: { | ||
num_people: await prisma.timetable_timetable.count({ | ||
distinct: ['user_id'], | ||
where: { | ||
timetable_timetable_lectures: { | ||
some: { | ||
lecture_id: lectureId, | ||
num_people: ( | ||
await prisma.timetable_timetable.findMany({ | ||
distinct: ['user_id'], | ||
where: { | ||
timetable_timetable_lectures: { | ||
some: { | ||
lecture_id: 16155, | ||
}, | ||
}, | ||
}, | ||
}, | ||
}), | ||
}) | ||
).length, | ||
}, | ||
}); | ||
}); | ||
|
@@ -134,16 +136,18 @@ export class TimetableLectureMiddleware | |
await prisma.subject_lecture.update({ | ||
where: { id: id }, | ||
data: { | ||
num_people: await prisma.timetable_timetable.count({ | ||
distinct: ['user_id'], | ||
where: { | ||
timetable_timetable_lectures: { | ||
some: { | ||
lecture_id: id, | ||
num_people: ( | ||
await prisma.timetable_timetable.findMany({ | ||
distinct: ['user_id'], | ||
where: { | ||
timetable_timetable_lectures: { | ||
some: { | ||
lecture_id: 16155, | ||
}, | ||
}, | ||
}, | ||
}, | ||
}), | ||
}) | ||
).length, | ||
}, | ||
}); | ||
}); | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 코드 리뷰를 통해 몇 가지 버그 리스크와 개선 사항을 제안합니다.
위의 포인트들을 고려하여 코드를 개선하면 더 안정적이고 유지 보수가 쉬운 소프트웨어를 만들 수 있을 것입니다. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 코드 리뷰를 진행하겠습니다. 버그 리스크
개선 제안
이러한 조정을 통해 코드의 효율성과 안정성을 높일 수 있을 것입니다. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 이 코드 패치에 대한 간단한 코드 리뷰를 진행하겠습니다. 버그 리스크
개선 제안
이러한 점들을 고려하면 코드의 안정성과 효율성을 높일 수 있을 것입니다. |
||
|
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -21,9 +21,9 @@ export class PrismaService extends PrismaClient implements OnModuleInit { | |
Object.assign(this, extendedClient); | ||
} | ||
|
||
async enableShutdownHooks(app: INestApplication) { | ||
this.$on('beforeExit', async () => { | ||
await app.close(); | ||
}); | ||
} | ||
// async enableShutdownHooks(app: INestApplication) { | ||
// this.$on('beforeExit', async () => { | ||
// await app.close(); | ||
// }); | ||
// } | ||
} | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 코드 리뷰:
전반적으로, 주석 처리된 코드의 필요성과 그에 따른 문서화가 필요합니다. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 코드 패치에 대한 간단한 리뷰입니다. 코드 변경 사항
위험 요소 및 개선 제안
개선 사항
결과적으로, 이 패치로 인해 앱의 안정성이 영향을 받을 수 있으며, 관계된 리소스를 안전하게 관리하는 방법을 재검토해야 합니다. |
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -257,21 +257,6 @@ export class ReviewsRepository { | |
where: { | ||
lecture: lectureFilter, | ||
}, | ||
distinct: [ | ||
'id', | ||
'course_id', | ||
'lecture_id', | ||
'content', | ||
'grade', | ||
'load', | ||
'speech', | ||
'writer_id', | ||
'writer_label', | ||
'updated_datetime', | ||
'like', | ||
'is_deleted', | ||
'written_datetime', | ||
], | ||
}); | ||
return reviewsCount; | ||
} | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 코드 패치를 검토한 결과, 다음과 같은 사항들을 지적할 수 있습니다.
이러한 사항들을 고려하여 코드 개선 및 리펙토링을 진행하는 것이 좋겠습니다. |
||
|
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,6 +1,6 @@ | ||
import dotenv from 'dotenv'; | ||
import { PrismaClientOptions } from 'prisma/prisma-client/runtime'; | ||
import { dotEnvOptions } from './dotenv-options'; | ||
import { Prisma } from '@prisma/client'; | ||
|
||
dotenv.config(dotEnvOptions); | ||
console.log(`NODE_ENV environment: ${process.env.NODE_ENV}`); | ||
|
@@ -31,7 +31,7 @@ const getCorsConfig = () => { | |
} | ||
}; | ||
|
||
const getPrismaConfig = (): PrismaClientOptions => { | ||
const getPrismaConfig = (): Prisma.PrismaClientOptions => { | ||
return { | ||
datasources: { | ||
db: { | ||
|
@@ -60,7 +60,7 @@ const getPrismaConfig = (): PrismaClientOptions => { | |
}; | ||
}; | ||
|
||
const getReplicatedPrismaConfig = (): PrismaClientOptions => { | ||
const getReplicatedPrismaConfig = (): Prisma.PrismaClientOptions => { | ||
return {}; | ||
}; | ||
|
||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 코드 패치를 검토해본 결과, 다음과 같은 사항을 확인했습니다:
결론적으로, 이 코드 패치는 잘 작성된 편이며, 특히 타입 변경으로 인한 안정성이 높아졌습니다. 하지만 에러 핸들링 개선 등 몇 가지 점검이 필요한 부분이 있습니다. |
||
|
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,58 @@ | ||
import { INestApplication } from '@nestjs/common'; | ||
import { Test, TestingModule } from '@nestjs/testing'; | ||
import { AppModule } from '../src/app.module'; | ||
import { PrismaService } from '../src/prisma/prisma.service'; | ||
import { TranManager } from '../src/prisma/transactionManager'; | ||
import { CourseRepository } from '../src/prisma/repositories/course.repository'; | ||
import { ECourse } from '@src/common/entities/ECourse'; | ||
import { CoursesService } from '@src/modules/courses/courses.service'; | ||
import { session_userprofile } from '@prisma/client'; | ||
|
||
describe('AppController (e2e)', () => { | ||
let app: INestApplication; | ||
|
||
beforeEach(async () => { | ||
const moduleFixture: TestingModule = await Test.createTestingModule({ | ||
imports: [AppModule], | ||
}).compile(); | ||
|
||
app = moduleFixture.createNestApplication(); | ||
await app.init(); | ||
}); | ||
|
||
it('distinct count', async () => { | ||
const prisma = app.get(PrismaService); | ||
console.log('transaction test with tranManager'); | ||
const result = await prisma.timetable_timetable.groupBy({ | ||
by: ['user_id'], | ||
where: { | ||
timetable_timetable_lectures: { | ||
some: { | ||
lecture_id: 16155, | ||
}, | ||
}, | ||
}, | ||
_count: { | ||
user_id: true, | ||
}, | ||
}); | ||
console.log(result); | ||
}, 10000); | ||
|
||
it('distinct count', async () => { | ||
const prisma = app.get(PrismaService); | ||
const result = ( | ||
await prisma.timetable_timetable.findMany({ | ||
distinct: ['user_id'], | ||
where: { | ||
timetable_timetable_lectures: { | ||
some: { | ||
lecture_id: 16155, | ||
}, | ||
}, | ||
}, | ||
}) | ||
).length; | ||
console.log(result); | ||
}); | ||
}); | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 코드 리뷰를 진행하겠습니다. 코드 리뷰
개선 제안
위 사항들을 고려하여 코드를 수정하면 더욱 견고하고 유지보수가 용이한 테스트 코드가 될 것입니다. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 코드 리뷰를 시작하겠습니다. 버그 리스크
개선 제안
결론테스트 코드에서의 명확성 및 유지보수성을 높이기 위한 몇 가지 개선사항을 제안했습니다. 코드 품질을 더욱 높일 수 있도록 리팩토링 해보세요. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
코드 패치에 대한 간략한 리뷰입니다.
개선 사항 및 버그 리스크:
Node.js 및 npm 버전 지정:
"engines"
필드를 추가하여 Node.js와 npm의 최소 버전을 명시한 것은 좋은 조치입니다. 이는 프로젝트의 호환성을 보장하는 데 유용합니다.의존성 업데이트:
@prisma/client
및prisma
의존성을 5.x 버전으로 업데이트한 것은 새로운 기능과 버그 수정을 활용할 수 있게 해줍니다. 그러나 이러한 주요 버전 변경이 호환성에 영향을 미칠 수 있으므로, 엔진 테스트 후 배포하는 것이 좋습니다.supertest
를 7.x로 업데이트한 것도 마찬가지입니다. 새로운 버전의 변경 사항을 확인하고 필요시 코드 수정이 필요할 수 있습니다.타입스크립트 버전 변경:
typescript
를 5.0으로 업데이트한 것은 현대적인 언어 기능을 사용하는 데 도움이 됩니다. 기존 코드가 변경된 API와 호환되는지 확인하는 테스트가 필요합니다.문서화:
테스트 커버리지:
레거시 의존성 제어:
위 사항들을 고려하여 갱신된 코드를 잘 관리하고 테스트하세요!