Как обработать ошибку после удаления таблицы в базе данных? - PullRequest
0 голосов
/ 14 января 2019

Пытаюсь сделать соединение базы данных с герою + постресс + призма. В первый раз все работает нормально, но когда я пытаюсь добавить тип в datamodel.prisma, он показывает ошибку. Поэтому я удаляю таблицу из базы данных и запускаю команду «prisma deploy». После этого, когда я пытаюсь выполнить мутацию / запрос на игровой площадке, я получаю сообщение об ошибке

graphql площадка сообщение

{
  "data": null,
  "errors": [
    {
      "message": "Whoops. Looks like an internal server error. Search your server logs for request ID: local:cjqwf62v5001d0881opobnlox",
      "path": [
        "createUser"
      ],
      "locations": [
        {
          "line": 2,
          "column": 3
        }
      ],
      "requestId": "local:cjqwf62v5001d0881opobnlox"
    }
  ]
}

это мои журналы докера

{"key":"error/unhandled","requestId":"local:cjqwf62v5001d0881opobnlox","clientId":"default$default","payload":{"exception":"org.postgresql.util.PSQLException: ERROR: column \"updatedAt\" of relation \"User\" does not exist\n  Position: 74","query":"mutation {\n  createUser(data: {name: \"bony\", email: \"bony@gmail.com\"}) {\n    id\n    name\n    email\n  }\n}\n","variables":"{}","code":"0","stack_trace":"org.postgresql.core.v3.QueryExecutorImpl.receiveErrorResponse(QueryExecutorImpl.java:2433)\\n org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:2178)\\n org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:306)\\n org.postgresql.jdbc.PgStatement.executeInternal(PgStatement.java:441)\\n org.postgresql.jdbc.PgStatement.execute(PgStatement.java:365)\\n org.postgresql.jdbc.PgPreparedStatement.executeWithFlags(PgPreparedStatement.java:155)\\n org.postgresql.jdbc.PgPreparedStatement.execute(PgPreparedStatement.java:144)\\n com.zaxxer.hikari.pool.ProxyPreparedStatement.execute(ProxyPreparedStatement.java:44)\\n com.zaxxer.hikari.pool.HikariProxyPreparedStatement.execute(HikariProxyPreparedStatement.java)\\n com.prisma.connector.shared.jdbc.SharedSlickExtensions.$anonfun$insertReturningGeneratedKeysToDBIO$1(SharedSlickExtensions.scala:28)\\n com.prisma.connector.shared.jdbc.SharedSlickExtensions.$anonfun$jooqToDBIO$1(SharedSlickExtensions.scala:62)\\n slick.jdbc.SimpleJdbcAction.run(StreamingInvokerAction.scala:70)\\n slick.jdbc.SimpleJdbcAction.run(StreamingInvokerAction.scala:69)\\n slick.basic.BasicBackend$DatabaseDef$$anon$2.liftedTree1$1(BasicBackend.scala:275)\\n slick.basic.BasicBackend$DatabaseDef$$anon$2.run(BasicBackend.scala:275)\\n java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)\\n java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)\\n java.lang.Thread.run(Thread.java:748)","message":"ERROR: column \"updatedAt\" of relation \"User\" does not exist\n  Position: 74"}}
[Bugsnag - local / testing] Error report: com.bugsnag.Report@7501bb3c
org.postgresql.util.PSQLException: ERROR: column "updatedAt" of relation "User" does not exist
  Position: 74
    at org.postgresql.core.v3.QueryExecutorImpl.receiveErrorResponse(QueryExecutorImpl.java:2433)
    at org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:2178)
    at org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:306)
    at org.postgresql.jdbc.PgStatement.executeInternal(PgStatement.java:441)
    at org.postgresql.jdbc.PgStatement.execute(PgStatement.java:365)
    at org.postgresql.jdbc.PgPreparedStatement.executeWithFlags(PgPreparedStatement.java:155)
    at org.postgresql.jdbc.PgPreparedStatement.execute(PgPreparedStatement.java:144)
    at com.zaxxer.hikari.pool.ProxyPreparedStatement.execute(ProxyPreparedStatement.java:44)
    at com.zaxxer.hikari.pool.HikariProxyPreparedStatement.execute(HikariProxyPreparedStatement.java)
    at com.prisma.connector.shared.jdbc.SharedSlickExtensions.$anonfun$insertReturningGeneratedKeysToDBIO$1(SharedSlickExtensions.scala:28)
    at com.prisma.connector.shared.jdbc.SharedSlickExtensions.$anonfun$jooqToDBIO$1(SharedSlickExtensions.scala:62)
    at slick.jdbc.SimpleJdbcAction.run(StreamingInvokerAction.scala:70)
    at slick.jdbc.SimpleJdbcAction.run(StreamingInvokerAction.scala:69)
    at slick.basic.BasicBackend$DatabaseDef$$anon$2.liftedTree1$1(BasicBackend.scala:275)
    at slick.basic.BasicBackend$DatabaseDef$$anon$2.run(BasicBackend.scala:275)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
    at java.lang.Thread.run(Thread.java:748)

datamodel.prisma

type User {
  id: ID! @unique
  email: String!
  name: String!
}

prisma.yml

version: '3'
services:
  prisma:
    image: prismagraphql/prisma:1.24
    restart: always
    ports:
      - '4466:4466'
    environment:
      PRISMA_CONFIG: |
        port: 4466
        databases:
          default:
            connector: postgres
            host: ec2-23-21-86-22.compute-1.amazonaws.com
            database: ***
            ssl: true
            user: ***
            password: ***
            rawAccess: true
            port: '5432'
            migrations: true

У кого-нибудь есть идея, чтобы решить эту проблему? Спасибо

...