Prisma 모델에 필드 추가

Breeze Lakes Point 프로젝트는 로그인하고 테이블의 데이터를 표시하기 위한 초기 사용자 모델과 함께 양호한 작업 상태에 있습니다. 모델을 구현하면서 중간 이름 또는 사용자가 가입 프로세스의 일부로 중간 이름이 없는지 캡처하고 싶다는 것을 깨달았습니다.

User 모델을 구축할 때 TypeScript에서 내 모델이 변경되었음을 인식하는 데 문제가 있었습니다. 새 필드에 오류 플래그가 지정되었고 데이터가 표시되지 않았습니다. 당시 문제를 해결했지만 수행한 모든 단계를 정확히 기억할 수 없습니다. 중간 이름을 추가하는 것은 그 프로세스를 정의할 수 있는 기회였습니다.

내 프로젝트에서는 npx 패키지 러너를 사용하여 Prisma 작업을 수행하고 있습니다. 자세한 내용은 article on nodejs.dev을 참조하십시오.

사용자 모델에 middleNamenoMiddleName를 추가하여 시작했습니다. noMiddleName는 사용자가 middleName 필드에 부정확한 데이터를 추가할 필요 없이 실제로 중간 이름이 없음을 나타낼 수 있는 부울입니다.

model User {
  id           String   @id @default(uuid())
  createdAt    DateTime @default(now())
  updatedAt    DateTime @updatedAt
  username     String   @unique
  password     String
  email        String?
  firstName    String
  middleName   String?
  lastName     String
  noMiddleName Boolean  @default(false)
  role         Role     @default(User)
}


실행npx prisma db push을 선택하여 변경 사항을 검토하거나 npx prisma migrate dev를 실행하여 마이그레이션을 생성하고 데이터를 적용할 수 있습니다. 필드가 모델에서 원하는 것임을 알았기 때문에 후자의 명령을 실행했습니다. 또한 작업할 새 클라이언트가 있는지 확인하기 위해 npx prisma generate를 실행했습니다.

이전에 이 단계에서 내 Javascript 코드가 변경 사항을 볼 수 없었던 것을 기억했습니다. 일부 TypeScript 불만과 기타 모호한 오류가 있었습니다. 새 필드를 통합하기 위해 시드 파일을 업데이트할 수 없었습니다. 이전 문제에서 모든 터미널을 삭제했지만 궁극적으로 새 VS Code 창에서 프로젝트를 닫았다가 다시 열면 문제가 해결된 것 같습니다. 이번에는 이러한 작업을 즉시 수행하고 다시 실행npx prisma generate하여 내 시드 파일에 새 필드를 추가할 수 있었습니다. 성공!

내 시드 파일에서 noMiddleNamemiddleName 값을 모두 모델링했습니다.

  const user2 = await prisma.user.upsert({
    where: { username: "user2" },
    update: {},
    create: {
      username: "user2",
      password: "<redacted>",
      firstName: "User",
      lastName: "2",
      role: "<redacted>",
      noMiddleName: true,
    },
  });
  const user4 = await prisma.user.upsert({
    where: { username: "[email protected]" },
    update: {},
    create: {
      username: "[email protected]",
      password: "<redacted>",
      email: "[email protected]",
      firstName: "User",
      lastName: "4",
      middleName: "S",
    },
  });


시드 파일을 업데이트한 후 다음 명령을 실행하여 Heroku에서 현재 데이터베이스를 자르고 데이터를 다시 시드했습니다.

npx prisma migrate reset
npx prisma db seed


마지막으로 변경 사항을 시각화하기 위해 데이터베이스에서 모델을 열었습니다.

npx prisma studio


기존 모델에 추가하고, 새 모델을 추가하고, 기본 프로젝트 코드에서 변경 사항을 사용할 수 있는지 확인하기 위한 최상의 프로세스 및 절차를 식별하여 개발 프로세스를 가속화하는 데 도움이 되었습니다. 이제 기본 프로젝트에 기능을 추가하는 데 필요한 추가 모델을 구축할 수 있습니다.

좋은 웹페이지 즐겨찾기