Добавление Prisma1 и Prisma2 одновременно с обнаружением критических изменений

Для перехода от prisma1 к prisma2 мы решили оставить рядом primsa1 и prisma2. Бегnpx prisma-upgrade создаст 2 критических изменения Fix one-to-many table relations а также Fix one-to-one table relations. Чтобы сделатьprisma1 а также prisma2 работать вместе, мы не будем запускать изменения SQL.

Пришло время постепенно перенести кодовую базу на prisma2:

Это модель данных 1.0 для пользователя:

type User {
  id: ID! @unique
  lastName: String!
  firstName: String!
  userRoleCompanies: [UserRoleCompanie!]! @relation(name: "UserRoleCompanieRelation", onDelete: CASCADE) 
}

type UserRoleCompanie {
  id: ID! @unique
  isInvitationApproved: Boolean!
  companie: Companie! @relation(name: "UserRoleCompaniesRelation")
}

Мне нужно изменить запрос:

const user = await ctx.db.query.user({ where: { email } },
  `
  {
    id
    firstName
    lastName
    email
    userRoleCompanies(where: { isInvitationApproved: true, companie: { deletedLogically: false } }, first: 1) {
      id
      companieRole
    }
  }
`
)

кому:

    const user = await prisma.user
      .findOne({
        where: { email }
      })
      .UserRoleCompanie_UserRoleCompanieRelation({
        where: {
          isInvitationApproved: true,
          Companie: { deletedLogically: false }
        },
        first: 1
      })

У меня такая ошибка:

конечно, потому что новая схема (prisma2):

model UserRoleCompanie {
  id                                       String                         @id
  Companie                                 Companie[]                     @relation("UserRoleCompaniesRelation", references: [id])
}

Отношение UserRoleCompanie-Companie составляет 1-1 в prisma1 и 1-many в prisma2.

Если я заменю schema.prisma от

Companie                                 Companie[]                     @relation("UserRoleCompaniesRelation", references: [id])

к

companie                                 Companie                   @relation(fields: [companiId],  references: [id])

У меня ошибка Error validating: The argument fields must refer only to existing fields. The following fields do not exist in this model: companiId. Что имеет смысл, потому что я не обновлял базу данных.

Как мы можем двигаться дальше, не выполняя SQL, чтобы не сломать prisma1?

0 ответов

Другие вопросы по тегам