prisma 1067 error

코곰·2023년 9월 18일
1

Error: P3006

Migration 20230918105636_init failed to apply cleanly to the shadow database.
Error code: P3018
Error:
A migration failed to apply. New migrations cannot be applied before the error is recovered from. Read more about how to resolve migration issues in a production database: https://pris.ly/d/migrate-resolve

Migration name: 20230918105636_init

Database error code: 1067

Database error:
Invalid default value for 'createdAt'

Please check the query number 1 from the migration file.

이런 에러가 떴다.. 다른 팀원이 사용하느 mariaDB에서는 에러가 나지 않았는데 내가 사용하는 MySQL 8.1.0 에서는 에러가 발생했다.

해결 방법은

createdAt DateTime @default(dbgenerated("NOW()")) @db.DateTime

여기 뒤에 있는 @db.DateTime 이걸 적는 것이다.

prisma를 사용하며 에러가 났을 때에는

DB schema 삭제하고
다시 npm run prisma를 해보자!
대부분의 에러가 해결된다.

이 전에 올린 local time 문제에서도
createdAt DateTime @default(dbgenerated("NOW()")) @db.DateTime
updatedAt DateTime @default(dbgenerated("NOW() ON UPDATE NOW()")) @db.DateTime

여기서 @db.DateTime을 빼고 마이그레이션 한 후 이 내용을 추가해서 실행해도 충돌이 나서 실행되지 않는다.

마이그레이션 폴더는 지우지 않아도 무방하다. 스키마만 삭제하면 된다!

profile
입니다.

1개의 댓글

comment-user-thumbnail
2023년 9월 20일

wow !
정말 멋진 해결방법이군요 ^^
제가 사용하는 MyKSH 4.8.6 도 가끔 비슷한 에러가
발생하던데, 저도 한번 코곰님의 방법을 실행해봐야겠네요 ^^ 좋은 하루 되세요 👍

답글 달기