prisma: After upgrade to version newer than 4.7.0: `TypeError: this.engine.dmmf is not a function` (workaround inside)

Bug description

2022-12-30T13:49:57.334Z f7b358d7-cebe-4cd0-9dfa-9963d44d58fd ERROR TypeError: this.engine.dmmf is not a function at LibraryEngine.getDmmf (/opt/nodejs/node_modules/@prisma/client/runtime/index.js:27892:41) at async /opt/nodejs/node_modules/@prisma/client/runtime/index.js:35539:24 { clientVersion: '4.6.1' }

when running prisma client operations in AWS Lambda

How to reproduce

It began with schema adjustment which renamed 1 table (droped and craeted) and its index name changein relations…

Expected behavior

No response

Prisma information

generator client {
  provider      = "prisma-client-js"
  binaryTargets = ["native", "rhel-openssl-1.0.x"]
}

datasource db {
  provider = "postgresql"
  url      = env("DATABASE_URL")
}

model Brand {
  brand_id           Int                @id @default(autoincrement())
  brand_name         String             @db.VarChar(255)
  corporation        String?            @db.VarChar(255)
  sectors            Sector[]
  markets            Market[]
  search_stims       SearchStim[]
  trend_mentions     MarketTrend[]
  brand_market_share BrandMarketShare[]
}

model Market {
  market_id          Int                @id @default(autoincrement())
  market_name        String             @db.VarChar(255)
  market_code        String             @db.VarChar(255)
  brands             Brand[]
  trends             Trend[]
  market_trend       MarketTrend[]
  brand_market_share BrandMarketShare[]
  related_queries    RelatedQuery[]
  BrandSearchTerm    BrandSearchTerm[]
  generic_term       GenericTerm[]
}

model Trend {
  date           DateTime   @db.Date
  trend          Float
  search_stim    SearchStim @relation(fields: [search_stim_id], references: [search_stim_id])
  search_stim_id Int
  market         Market     @relation(fields: [market_id], references: [market_id])
  market_id      Int

  @@id([date, search_stim_id, market_id])
}

model Sector {
  sector_id          Int                @id @default(autoincrement())
  sector_name        String             @unique
  brands             Brand[]
  brand_market_share BrandMarketShare[]
  generic_term       GenericTerm[]
}

model SearchStim {
  search_stim_id    Int               @id @default(autoincrement())
  search_stim       String            @unique
  type              String
  brand             Brand             @relation(fields: [brand_id], references: [brand_id])
  brand_id          Int
  description       String?
  trend             Trend[]
  related_queries   RelatedQuery[]
  BrandSearchTerm   BrandSearchTerm[]
  averageTrendValue Float?
}

model MarketTrend {
  market_trend_id   Int       @id @default(autoincrement())
  market            Market    @relation(fields: [market_id], references: [market_id])
  market_id         Int
  title             String
  traffic           Int
  date              DateTime?
  content           String
  associated_brands Brand[]
  source            Source?   @relation(fields: [source_id], references: [source_id])
  source_id         Int?
  url               String?
}

model Source {
  source_id Int           @id @default(autoincrement())
  source    String
  trend     MarketTrend[]
}

model BrandMarketShare {
  BrandMarketShare Int       @id @default(autoincrement())
  date             DateTime?
  brand            Brand     @relation(fields: [brand_id], references: [brand_id])
  brand_id         Int
  market           Market    @relation(fields: [market_id], references: [market_id])
  market_id        Int
  sector           Sector    @relation(fields: [sector_id], references: [sector_id])
  sector_id        Int
  share            Float
  is_term          Boolean   @default(false)
}

model RelatedQuery {
  type            String
  query           String
  value           Int
  market          Market            @relation(fields: [market_id], references: [market_id])
  market_id       Int
  search_stim     SearchStim        @relation(fields: [search_stim_id], references: [search_stim_id])
  search_stim_id  Int
  BrandSearchTerm BrandSearchTerm[]

  @@id([type, query, market_id, search_stim_id])
}

model BrandSearchTerm {
  competitiveness    Int
  market_association Float
  brand_association  Int
  category           Category      @relation(fields: [category_id], references: [category_id])
  category_id        Int
  related_query      RelatedQuery? @relation(fields: [type, query, market_id, search_stim_id], references: [type, query, market_id, search_stim_id])
  type               String
  query              String
  market             Market        @relation(fields: [market_id], references: [market_id])
  market_id          Int
  search_stim        SearchStim    @relation(fields: [search_stim_id], references: [search_stim_id])
  search_stim_id     Int

  @@id([type, query, market_id, search_stim_id])
}

model Category {
  category_id       Int               @id @default(autoincrement())
  category_name     String
  brand_search_term BrandSearchTerm[]
}

model GenericTerm {
  generic_term_id Int    @id @default(autoincrement())
  sector          Sector @relation(fields: [sector_id], references: [sector_id])
  sector_id       Int
  market          Market @relation(fields: [market_id], references: [market_id])
  market_id       Int
  type            String
  generic_term    String
}

Environment & setup

AWS Lambda

  • Database: PostgreSQL
  • Node.js version: 16

Prisma Version

  clientVersion: '4.6.1'

About this issue

  • Original URL
  • State: open
  • Created 2 years ago
  • Reactions: 3
  • Comments: 15 (2 by maintainers)

Most upvoted comments

I deleted node_modules and upgraded prisma to 4.8 and it worked.

I am facing the same issue after upgrading to prisma 4.8. Any idea how to resolve this?

In my case, I deleted node_modules and yarn.lock, reinstalled packages, then all started to work again. @ernstoarllano maybe this can be helpful to you as well.

Deleting node_modules and reinstalling did the trick. 🚀

🚀 I fixed it as said above: I deleted node_modules folder and updated Prisma package to version “^4.9.0”.

{
  "devDependencies": {
   "prisma": "^4.9.0",
  },
    "dependencies": {
      "@prisma/client": "^4.9.0",
  },
}
$ rm -rf node_modules
$ npm i prisma -D
$ prisma generate