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을 빼고 마이그레이션 한 후 이 내용을 추가해서 실행해도 충돌이 나서 실행되지 않는다.
마이그레이션 폴더는 지우지 않아도 무방하다. 스키마만 삭제하면 된다!
wow !
정말 멋진 해결방법이군요 ^^
제가 사용하는 MyKSH 4.8.6 도 가끔 비슷한 에러가
발생하던데, 저도 한번 코곰님의 방법을 실행해봐야겠네요 ^^ 좋은 하루 되세요 👍