Prisma deploy: отношения ожидаются для перечислений / ожидают интерфейса, директивы или определения - PullRequest
0 голосов
/ 06 февраля 2020

Я пытаюсь развернуть мой обновленный файл datamodel.prisma. Однако возникает ошибка, и из того, что я могу понять, он думает, что я пытаюсь создать связь между определенным выше перечислением с типом User.

Вот мой файл:

enum Permission {
  ADMIN
  USER
  ITEMCREATE
  ITEMUPDATE
  ITEMDELETE
  PERMISSIONUPDATE
}

type User {
  id: ID! @id
  name: String!
  email: String! @unique
  password: String!
  resetToken: String
  resetTokenExpiry: String
  permissions: [Permission]
}

type Item {
  id: ID! @id
  title: String!
  description: String!
  image: String
  largeImage: String
  price: Int!
  createdAt: DateTime! @createdAt
  updatedAt: DateTime! @updatedAt
}

Запуск prisma deploy --env-file variables.env выдает мне эту ошибку ниже:

Errors:

  User
    ✖ Valid values for the strategy argument of `@scalarList` are: RELATION.

Если я изменю permissions: [Permission] на permissions: Permission[], вместо этого выдается эта ошибка (в частности, expected ImplementsInterfaces, DirectivesConst or FieldDefinitions):

ERROR: Syntax error while parsing GraphQL query. Invalid input "{\n  id: ID! @id\n  name: String!\n  email: String! @unique\n  password: String!\n  resetToken: String\n  resetTokenExpiry: String\n  permissions: Permission[", expected ImplementsInterfaces, DirectivesConst or FieldDefinitions (line 10, column 11):
type User {
          ^

{
  "data": {
    "deploy": null
  },
  "errors": [
    {
      "locations": [
        {
          "line": 2,
          "column": 9
        }
      ],
      "path": [
        "deploy"
      ],
      "code": 3017,
      "message": "Syntax error while parsing GraphQL query. Invalid input \"{\\n  id: ID! @id\\n  name: String!\\n  email: String! @unique\\n  password: String!\\n  resetToken: String\\n  resetTokenExpiry: String\\n  permissions: Permission[\", expected ImplementsInterfaces, DirectivesConst or FieldDefinitions (line 10, column 11):\ntype User {\n          ^",
      "requestId": "us1:ck6au2sum8frx0b00fviv1dom"
    }
  ],
  "status": 200
}

Я не уверен, что означает эта ошибка, но у меня есть ощущение, что она не понимает модификатор типа @unique в поле электронной почты. Этого не было раньше, и развертывание работало нормально. Любая помощь с благодарностью!

1 Ответ

0 голосов
/ 07 февраля 2020

Вам необходимо указать стратегию и директиву @scalarList.

Эта директива @scalarList (стратегии: СТРАТЕГИЯ!) Необходима для любого поля списка скаляров. Единственным допустимым аргументом для аргумента стратегии является RELATION.

type Post {
  tags: [String!]! @scalarList(strategy: RELATION)
}

Требуется для всех полей списка скаляров и перечислений.

См .: https://www.prisma.io/docs/datamodel-and-migrations/datamodel-MYSQL-knul/# @ scalarlist

...