From 2f4520054281ecfbd577b5f5e0102358ce9259cf Mon Sep 17 00:00:00 2001 From: LongYinan Date: Thu, 28 Dec 2023 08:09:10 +0000 Subject: [PATCH] feat(server): upgrade prisma to use native relation joins and distinct (#5420) https://github.com/prisma/prisma/releases/tag/5.7.0 --- packages/backend/server/package.json | 6 +- packages/backend/server/schema.prisma | 2 +- .../server/src/metrics/opentelemetry.ts | 4 +- yarn.lock | 153 ++++++++++-------- 4 files changed, 91 insertions(+), 74 deletions(-) diff --git a/packages/backend/server/package.json b/packages/backend/server/package.json index 18b68abb8c..5549ce686d 100644 --- a/packages/backend/server/package.json +++ b/packages/backend/server/package.json @@ -52,8 +52,8 @@ "@opentelemetry/sdk-metrics": "^1.19.0", "@opentelemetry/sdk-node": "^0.46.0", "@opentelemetry/sdk-trace-node": "^1.19.0", - "@prisma/client": "^5.6.0", - "@prisma/instrumentation": "^5.6.0", + "@prisma/client": "^5.7.1", + "@prisma/instrumentation": "^5.7.1", "@socket.io/redis-adapter": "^8.2.1", "cookie-parser": "^1.4.6", "dotenv": "^16.3.1", @@ -74,7 +74,7 @@ "on-headers": "^1.0.2", "parse-duration": "^1.1.0", "pretty-time": "^1.1.0", - "prisma": "^5.6.0", + "prisma": "^5.7.1", "prom-client": "^15.0.0", "reflect-metadata": "^0.2.0", "rxjs": "^7.8.1", diff --git a/packages/backend/server/schema.prisma b/packages/backend/server/schema.prisma index fae3ff0b10..d2518476b0 100644 --- a/packages/backend/server/schema.prisma +++ b/packages/backend/server/schema.prisma @@ -1,7 +1,7 @@ generator client { provider = "prisma-client-js" binaryTargets = ["native", "debian-openssl-3.0.x", "linux-arm64-openssl-3.0.x"] - previewFeatures = ["metrics", "tracing"] + previewFeatures = ["metrics", "tracing", "relationJoins", "nativeDistinct"] } datasource db { diff --git a/packages/backend/server/src/metrics/opentelemetry.ts b/packages/backend/server/src/metrics/opentelemetry.ts index 5b084c8cfc..38355a389d 100644 --- a/packages/backend/server/src/metrics/opentelemetry.ts +++ b/packages/backend/server/src/metrics/opentelemetry.ts @@ -29,7 +29,9 @@ import { SpanExporter, TraceIdRatioBasedSampler, } from '@opentelemetry/sdk-trace-node'; -import { PrismaInstrumentation } from '@prisma/instrumentation'; +import prismaInstrument from '@prisma/instrumentation'; + +const { PrismaInstrumentation } = prismaInstrument; import { PrismaMetricProducer } from './prisma'; diff --git a/yarn.lock b/yarn.lock index fb1d018fab..972b9ceb92 100644 --- a/yarn.lock +++ b/yarn.lock @@ -659,8 +659,8 @@ __metadata: "@opentelemetry/sdk-metrics": "npm:^1.19.0" "@opentelemetry/sdk-node": "npm:^0.46.0" "@opentelemetry/sdk-trace-node": "npm:^1.19.0" - "@prisma/client": "npm:^5.6.0" - "@prisma/instrumentation": "npm:^5.6.0" + "@prisma/client": "npm:^5.7.1" + "@prisma/instrumentation": "npm:^5.7.1" "@socket.io/redis-adapter": "npm:^8.2.1" "@types/cookie-parser": "npm:^1.4.6" "@types/engine.io": "npm:^3.1.10" @@ -697,7 +697,7 @@ __metadata: on-headers: "npm:^1.0.2" parse-duration: "npm:^1.1.0" pretty-time: "npm:^1.1.0" - prisma: "npm:^5.6.0" + prisma: "npm:^5.7.1" prom-client: "npm:^15.0.0" reflect-metadata: "npm:^0.2.0" rxjs: "npm:^7.8.1" @@ -8397,14 +8397,14 @@ __metadata: languageName: node linkType: hard -"@opentelemetry/core@npm:1.18.0": - version: 1.18.0 - resolution: "@opentelemetry/core@npm:1.18.0" +"@opentelemetry/core@npm:1.18.1": + version: 1.18.1 + resolution: "@opentelemetry/core@npm:1.18.1" dependencies: - "@opentelemetry/semantic-conventions": "npm:1.18.0" + "@opentelemetry/semantic-conventions": "npm:1.18.1" peerDependencies: "@opentelemetry/api": ">=1.0.0 <1.8.0" - checksum: 0e9d19ef3508552f8798f031c4175fa1a046f284814a1fd56c0ae77cecf555884c84cf05b99906e8835b8b658260a00c5c332267d88a33bc6a7a162bf941a65c + checksum: b8c08c40d07d8b2afefc3c97ea83d8e8dc2e5e5a139007ba7fc4cc25fc38b6fe0d1380d4bdaf390381f114dbfbed5b3c45a395972cf25a1a174c8e5b0bd830fb languageName: node linkType: hard @@ -8568,9 +8568,9 @@ __metadata: languageName: node linkType: hard -"@opentelemetry/instrumentation@npm:0.45.0": - version: 0.45.0 - resolution: "@opentelemetry/instrumentation@npm:0.45.0" +"@opentelemetry/instrumentation@npm:0.45.1, @opentelemetry/instrumentation@npm:^0.45.1": + version: 0.45.1 + resolution: "@opentelemetry/instrumentation@npm:0.45.1" dependencies: "@types/shimmer": "npm:^1.0.2" import-in-the-middle: "npm:1.4.2" @@ -8579,7 +8579,7 @@ __metadata: shimmer: "npm:^1.2.1" peerDependencies: "@opentelemetry/api": ^1.3.0 - checksum: 488289d26ff6a65968d85d20071e762ee0df3a36f0d82823f10c3e0505b5988b32a2bab71b22d6d5a04f5ce7f108beaa6ed4459e782ce78a0ceca5667d9df900 + checksum: 8a2178eae72758d21fce22355aba8fce6e7e24680d5b179383edefc787c654fbe8416777b21baa661fbcb155eeeefa940b53bc36c4392b1bde11f3b01dbfdfa2 languageName: node linkType: hard @@ -8598,21 +8598,6 @@ __metadata: languageName: node linkType: hard -"@opentelemetry/instrumentation@npm:^0.45.1": - version: 0.45.1 - resolution: "@opentelemetry/instrumentation@npm:0.45.1" - dependencies: - "@types/shimmer": "npm:^1.0.2" - import-in-the-middle: "npm:1.4.2" - require-in-the-middle: "npm:^7.1.1" - semver: "npm:^7.5.2" - shimmer: "npm:^1.2.1" - peerDependencies: - "@opentelemetry/api": ^1.3.0 - checksum: 8a2178eae72758d21fce22355aba8fce6e7e24680d5b179383edefc787c654fbe8416777b21baa661fbcb155eeeefa940b53bc36c4392b1bde11f3b01dbfdfa2 - languageName: node - linkType: hard - "@opentelemetry/otlp-exporter-base@npm:0.46.0": version: 0.46.0 resolution: "@opentelemetry/otlp-exporter-base@npm:0.46.0" @@ -8696,15 +8681,15 @@ __metadata: languageName: node linkType: hard -"@opentelemetry/resources@npm:1.18.0": - version: 1.18.0 - resolution: "@opentelemetry/resources@npm:1.18.0" +"@opentelemetry/resources@npm:1.18.1": + version: 1.18.1 + resolution: "@opentelemetry/resources@npm:1.18.1" dependencies: - "@opentelemetry/core": "npm:1.18.0" - "@opentelemetry/semantic-conventions": "npm:1.18.0" + "@opentelemetry/core": "npm:1.18.1" + "@opentelemetry/semantic-conventions": "npm:1.18.1" peerDependencies: "@opentelemetry/api": ">=1.0.0 <1.8.0" - checksum: a9a843ac414be6e379201148f9817b82b9377b93422ff8729056787d1e3908537dc805ffe141b2e70f3211daca2687f39df62105bc4203489fc0435028526dba + checksum: f7d168a82c2fc602364a54977f41ce9f873b5156d5e36bf0f078b289f6bb1c41eaae700bcdddb7f32d15cb7e937d81239eb0301c7d0aa9b2a6c85a4cb0ff5ded languageName: node linkType: hard @@ -8769,16 +8754,16 @@ __metadata: languageName: node linkType: hard -"@opentelemetry/sdk-trace-base@npm:1.18.0": - version: 1.18.0 - resolution: "@opentelemetry/sdk-trace-base@npm:1.18.0" +"@opentelemetry/sdk-trace-base@npm:1.18.1": + version: 1.18.1 + resolution: "@opentelemetry/sdk-trace-base@npm:1.18.1" dependencies: - "@opentelemetry/core": "npm:1.18.0" - "@opentelemetry/resources": "npm:1.18.0" - "@opentelemetry/semantic-conventions": "npm:1.18.0" + "@opentelemetry/core": "npm:1.18.1" + "@opentelemetry/resources": "npm:1.18.1" + "@opentelemetry/semantic-conventions": "npm:1.18.1" peerDependencies: "@opentelemetry/api": ">=1.0.0 <1.8.0" - checksum: f36b38c746acf6646a0ff7d6b72e0ccf5cec0153f04f77315a1d7b39ff02b2407a0c853b83ac014456076efa6149cef4e7534d650260ac7213c944bd81f6ec21 + checksum: 99e576f538a06feff11e1a7c63224864ef4875e36bd0b7284087307f6dd87554aa2089f0a51f8a4cdc55c44f298befedf94b40987af9a0875e931bd3fe2e77c5 languageName: node linkType: hard @@ -8811,10 +8796,10 @@ __metadata: languageName: node linkType: hard -"@opentelemetry/semantic-conventions@npm:1.18.0": - version: 1.18.0 - resolution: "@opentelemetry/semantic-conventions@npm:1.18.0" - checksum: 0409c698376a9279f3ef489762d288b00dd1dae84812e211813f97960ff8cea23c086d9bce585b03fe1b16b8137ed9b180462aeb6250d827fab4dd45573b94c3 +"@opentelemetry/semantic-conventions@npm:1.18.1": + version: 1.18.1 + resolution: "@opentelemetry/semantic-conventions@npm:1.18.1" + checksum: 00d46e3b61eeac8a6752d50a0fb55ddf32f6f716a7fe4bf35b6d001da89398b4d8a5623a17044b24ab159acb892b2ac2586731b375176b94806cb0013f629dd5 languageName: node linkType: hard @@ -9097,42 +9082,72 @@ __metadata: languageName: node linkType: hard -"@prisma/client@npm:^5.6.0": - version: 5.6.0 - resolution: "@prisma/client@npm:5.6.0" - dependencies: - "@prisma/engines-version": "npm:5.6.0-32.e95e739751f42d8ca026f6b910f5a2dc5adeaeee" +"@prisma/client@npm:^5.7.1": + version: 5.7.1 + resolution: "@prisma/client@npm:5.7.1" peerDependencies: prisma: "*" peerDependenciesMeta: prisma: optional: true - checksum: eb784095ed27921bf859cd4b72b1a7e8d8f98dac0ebc782d94eecb4f4abaaa5de26d99bf9ef4e4d7b620d6f449d806884a315332766b3c040a97ef06150ba8f4 + checksum: c8c4cdc1b70ae1acb00f0c98b8eb4a3d3e96edb1818955b0a152980a98ce4c9eb3233e9d896525729d64191df71be8ea9b7daac6ea47b01ac475185528e83c5a languageName: node linkType: hard -"@prisma/engines-version@npm:5.6.0-32.e95e739751f42d8ca026f6b910f5a2dc5adeaeee": - version: 5.6.0-32.e95e739751f42d8ca026f6b910f5a2dc5adeaeee - resolution: "@prisma/engines-version@npm:5.6.0-32.e95e739751f42d8ca026f6b910f5a2dc5adeaeee" - checksum: 0a6248f702855775fab9fe277a98acdc558c3929101c8d56010f8dba708e35c42eb9879af3bd2e2a9446a68776a3e8b609ffb0e1835de083334cb492d236f101 +"@prisma/debug@npm:5.7.1": + version: 5.7.1 + resolution: "@prisma/debug@npm:5.7.1" + checksum: acb904bd7be0d4b389f0c5db23dee3b4b0cfaf131de13aaa72d0cccbc3a0e9cec16637f520e1af8c91ce43f9e075d535b78cb5709227eac011d3e4964c9a6fb5 languageName: node linkType: hard -"@prisma/engines@npm:5.6.0": - version: 5.6.0 - resolution: "@prisma/engines@npm:5.6.0" - checksum: 01ce51dd6ceec68097b8f15e5f9895649ba4080eb7fc1ec1476131a3d2898d47dfe594255244dd021de4b26af8c91cdbd6c1600efdb3a242867061fbea1f2027 +"@prisma/engines-version@npm:5.7.1-1.0ca5ccbcfa6bdc81c003cf549abe4269f59c41e5": + version: 5.7.1-1.0ca5ccbcfa6bdc81c003cf549abe4269f59c41e5 + resolution: "@prisma/engines-version@npm:5.7.1-1.0ca5ccbcfa6bdc81c003cf549abe4269f59c41e5" + checksum: 3f8a6e07b793ed9364429ddf16be5ae58d6e2f36e9a687ec327e7e2e85ab5df49104ba8ddfb4a178fdd882b11029367cbb56e6c7bb15c046cc799af889dadc89 languageName: node linkType: hard -"@prisma/instrumentation@npm:^5.6.0": - version: 5.6.0 - resolution: "@prisma/instrumentation@npm:5.6.0" +"@prisma/engines@npm:5.7.1": + version: 5.7.1 + resolution: "@prisma/engines@npm:5.7.1" + dependencies: + "@prisma/debug": "npm:5.7.1" + "@prisma/engines-version": "npm:5.7.1-1.0ca5ccbcfa6bdc81c003cf549abe4269f59c41e5" + "@prisma/fetch-engine": "npm:5.7.1" + "@prisma/get-platform": "npm:5.7.1" + checksum: 3247e4a404ab943e9c42a8a9cd5f1f069113b1bb9e46b1a134f1ec9fd9810025a516812c6b4fc92903e9ca679107cf01eb183d80ca04667ce8c3afe9976dc976 + languageName: node + linkType: hard + +"@prisma/fetch-engine@npm:5.7.1": + version: 5.7.1 + resolution: "@prisma/fetch-engine@npm:5.7.1" + dependencies: + "@prisma/debug": "npm:5.7.1" + "@prisma/engines-version": "npm:5.7.1-1.0ca5ccbcfa6bdc81c003cf549abe4269f59c41e5" + "@prisma/get-platform": "npm:5.7.1" + checksum: 3ef8cc0329ad67f8910d1afa4657bf5b199acc50b22319b4df51f796666be49ce8f48c1cfca8cdeb674414127ae3a509e39d918b64de749f9ff55a227a2c53c5 + languageName: node + linkType: hard + +"@prisma/get-platform@npm:5.7.1": + version: 5.7.1 + resolution: "@prisma/get-platform@npm:5.7.1" + dependencies: + "@prisma/debug": "npm:5.7.1" + checksum: 05be5e46975a43f402d38816cb008f995f5a4531eb77d729ccb7b03fc9f945bab9ba5a9c04a76dcecdfdc6eb2800d523ea033090186d032b34b832bde3f2a465 + languageName: node + linkType: hard + +"@prisma/instrumentation@npm:^5.7.1": + version: 5.7.1 + resolution: "@prisma/instrumentation@npm:5.7.1" dependencies: "@opentelemetry/api": "npm:1.7.0" - "@opentelemetry/instrumentation": "npm:0.45.0" - "@opentelemetry/sdk-trace-base": "npm:1.18.0" - checksum: 0d7eebe19f2eab2c2b82119c29accf2b3e46638c5331c69a531fdb4ee16c6ef99fdd63b905319c02258082975e579e059aa5a5109e5299be889ff5aa836af4e7 + "@opentelemetry/instrumentation": "npm:0.45.1" + "@opentelemetry/sdk-trace-base": "npm:1.18.1" + checksum: 9a1a1ec35954a3cd743f3488b4601d67405532754db2d2eee97ae5f0481bd9c565ce6c4fa5b32e6df729d590415328e240942cf653874a4270259fd2c1419474 languageName: node linkType: hard @@ -29463,14 +29478,14 @@ __metadata: languageName: node linkType: hard -"prisma@npm:^5.6.0": - version: 5.6.0 - resolution: "prisma@npm:5.6.0" +"prisma@npm:^5.7.1": + version: 5.7.1 + resolution: "prisma@npm:5.7.1" dependencies: - "@prisma/engines": "npm:5.6.0" + "@prisma/engines": "npm:5.7.1" bin: prisma: build/index.js - checksum: e6484ffd697f0591fe9e7fd0f55c366eeee5c909b8e061071308834e3f1145922f953277e03a43bec187bc7bcbeab61a722b8a9c5300e91380ca2ad3b0e6a842 + checksum: cbab96b7823a7ee64e4e8d9a95ecc684a06c5292a8fd6b1caa518117eac922b05d13a59473d978204358ba04fe308085f6bfc272f213b4b6974c4e5eb3c844d7 languageName: node linkType: hard