Prisma P2021·P2022 오류로 테이블·열이 없다고 나와요
Prisma P2021·P2022가 발생할 때 실행 환경, 실제 테이블·열, migration 기록과 배포 순서를 확인하는 방법을 설명합니다.
빠른 답변
P2021은 현재 데이터베이스에 테이블이 없고 P2022는 열이 없다는 뜻입니다. 오류가 난 환경의 대상 데이터베이스와 실제 스키마를 확인하고, `prisma migrate status`로 migration 파일과 적용 기록을 비교한 뒤 안전한 배포 절차를 결정합니다.
- 적용 범위
- 이 가이드의 시작 증상과 각 분기 조건이 일치하는 경우문맥: 바이브 코딩
- 출처
- Prisma
- 출처 확인일
- 2026-08-29
- 최종 검토
- 2026-08-29
- 수정일
- 2026-08-29
- 정정 이력
- 2026-07-29 이후 기록 없음
- 대상
- 사이트 운영자, 웹 에이전시, 프리랜서
이 가이드가 맞는 경우
- 애플리케이션 오류 메시지
- 데이터베이스 오류
- 빌드 성공, 배포 실패
상황별 다음 단계
호스팅사·개발자에게 전달할 내용
변경 전 기록
- 오류가 난 테이블·열, 적용된 migration ID, 대상 환경을 기록합니다.
- 데이터베이스 접속 문자열과 운영 데이터 원문은 전달하지 않습니다.
알아둘 점
오류 코드와 원문으로 없는 대상이 테이블인지 열인지 먼저 구분합니다.
| 오류 | 원문 | 확인 대상 |
|---|---|---|
P2021 | The table {table} does not exist in the current database. | 대상 데이터베이스에 테이블이 있는지 확인합니다. |
P2022 | The column {column} does not exist in the current database. | 대상 테이블에 열이 있는지 확인합니다. |
확인 순서
- 오류가 난 애플리케이션이 실제로 사용하는
DATABASE_URL의 데이터베이스와 환경을 확인합니다. 값 자체는 공개하지 않습니다. - 오류가 가리키는 테이블·열이 해당 데이터베이스에 실제로 존재하는지 읽기 전용 스키마 조회로 확인합니다.
- Prisma 모델의
@map,@@map과 오류에 표시된 실제 데이터베이스 이름을 비교합니다. npx prisma migrate status로 저장소의prisma/migrations와 대상 데이터베이스의_prisma_migrations기록을 비교합니다.- 배포 로그에서 Prisma Client 생성 시점과 migration 적용 시점을 비교합니다.
결과별 분기
P2021: 테이블이 없음
The table {table} does not exist in the current database. 문서에서 대상 환경, 테이블 이름과 migration 상태를 확인합니다.
P2022: 열이 없음
The column {column} does not exist in the current database. 문서에서 열 이름, 모델 매핑, 실제 스키마와 migration 상태를 확인합니다.
Pending migration이 있음
해당 migration SQL에 필요한 테이블·열 변경이 들어 있는지 검토합니다. 운영 환경에서는 백업과 되돌리기 절차를 확인한 뒤 CI/CD의 prisma migrate deploy 단계로 적용합니다. 이 명령은 실제 데이터베이스 schema drift를 탐지하지 않으므로 적용 뒤 읽기 전용 스키마 조회와 동일 요청 재검사가 필요합니다.
Migration 기록은 일치하지만 실제 스키마가 다름
다음을 비교합니다.
- 애플리케이션이 예상한 데이터베이스에 연결됐는지
- 운영 데이터베이스에서 수동 변경이나 hotfix가 있었는지
- 적용된 migration 파일이 나중에 수정·삭제됐는지
- Prisma Client가 현재
schema.prisma에서 생성됐는지
운영 환경에서 하지 않을 조치
prisma migrate reset은 데이터베이스를 초기화하므로 실행하지 않습니다.prisma migrate dev는 개발 환경용이므로 운영에서 실행하지 않습니다.prisma db push로 migration history를 건너뛰지 않습니다.- 테이블·열을 직접 추가하거나 삭제하기 전에 migration SQL, 데이터 영향, 복구 방법을 검토합니다.
담당자에게 전달할 자료
- P2021 또는 P2022 오류 원문과 발생 시각
- 환경 이름과 비밀값을 제거한 데이터베이스 호스트·이름
- 없는 것으로 표시된 테이블·열 이름
prisma migrate status결과와 마지막 배포 커밋- 최근 schema·migration·데이터베이스 수동 변경 시각
출처
참고 자료
Prisma · 공식 자료 · 확인 범위: P2021은 현재 데이터베이스에 테이블이 없다는 오류입니다., P2022는 현재 데이터베이스에 열이 없다는 오류입니다. · 확인일: 2026-08-29
Prisma · 공식 자료 · 확인 범위: prisma migrate status는 로컬 migration 파일과 대상 데이터베이스의 migration 기록을 비교합니다., 적용되지 않은 migration, 서로 달라진 migration history, 실패한 migration을 상태로 보고합니다. · 확인일: 2026-08-29
Prisma · 공식 자료 · 확인 범위: migrate dev와 migrate reset은 개발 환경에서만 사용합니다., 운영·테스트 환경에서는 migrate deploy로 pending migration을 적용합니다., migrate deploy는 실제 데이터베이스 schema drift를 탐지하지 않습니다. · 확인일: 2026-08-29
Prisma · 공식 자료 · 확인 범위: prisma db push나 수동 스키마 변경처럼 migration을 사용하지 않은 변경은 migration history와 실제 스키마의 차이를 만들 수 있습니다., migration history와 실제 스키마의 차이는 개발 환경의 shadow database를 사용해 탐지합니다. · 확인일: 2026-08-29