Tags: pclokcer/prisma
Tags
perf: in-memory join optimization (prisma#27443) [ORM-1037](https://linear.app/prisma-company/issue/ORM-1037/qc-performance-regression-with-in-memory-joins)
chore(deps): update engines to 6.10.0-43.aee10d5a411e4360c6d3445ce481… …0ca65adbf3e8 (prisma#27435) The base branch for this PR is: main This automatic PR updates the engines to version `6.10.0-43.aee10d5a411e4360c6d3445ce4810ca65adbf3e8`. This will get automatically merged if all the tests pass. :warning: If this PR needs to be updated, first remove the `automerge` label before pushing to avoid automerge to merge without waiting for tests. ## Packages | Package | NPM URL | |---------|---------| |`@prisma/engines-version`| https://npmjs.com/package/@prisma/engines-version/v/6.10.0-43.aee10d5a411e4360c6d3445ce4810ca65adbf3e8| |`@prisma/prisma-schema-wasm`| https://npmjs.com/package/@prisma/prisma-schema-wasm/v/6.10.0-43.aee10d5a411e4360c6d3445ce4810ca65adbf3e8| |`@prisma/query-engine-wasm`| https://npmjs.com/package/@prisma/query-engine-wasm/v/6.10.0-43.aee10d5a411e4360c6d3445ce4810ca65adbf3e8| |`@prisma/query-compiler-wasm`| https://npmjs.com/package/@prisma/query-compiler-wasm/v/6.10.0-43.aee10d5a411e4360c6d3445ce4810ca65adbf3e8| |`@prisma/schema-engine-wasm`| https://npmjs.com/package/@prisma/schema-engine-wasm/v/6.10.0-43.aee10d5a411e4360c6d3445ce4810ca65adbf3e8| ## Engines commit [`prisma/prisma-engines@aee10d5a411e4360c6d3445ce4810ca65adbf3e8`](prisma/prisma-engines@aee10d5)
feat(cli): skip downloading Query Engine when Query Compiler is turne… …d on, and Schema Engine when config.migrate.adapter is set (prisma#27311) This PR: - closes [ORM-1005](https://linear.app/prisma-company/issue/ORM-1005/make-sure-qe-binary-is-not-downloaded-when-using-qc) - in `packages/engines`: - gets rid of the old `ensureBinariesExist`, replacing it with `ensureNeededBinariesExist` - add first test, using `vitest`. - in `packages/cli`: - add new `getClientGeneratorInfo` utility, to safely extract info (preview features' list, engine type) from Prisma's official client generator(s) PSL block - combine `ensureBinariesExist` with `getClientGeneratorInfo` in the `CLI` barrel command file, ensuring no stdout regression After this PR: - we no longer attempt downloading Query Engine binaries when the client generator has the `queryCompiler` feature (which implies `engineType` is inferred as `client`): ```prisma // ./prisma/schema.prisma generator client { provider = "prisma-client" output = "../generated/client" previewFeatures = ["queryCompiler"] } ``` - we no longer attempt downloading Schema Engine binary when `prisma.config.ts` has a `migrate.adapter` set: ```typescript // ./prisma.config.ts import 'dotenv/config' import { defineConfig } from 'prisma/config' export default defineConfig({ earlyAccess: true, schema: './prisma/schema.prisma', migrate: { // @ts-ignore adapter: async () => { return Promise.resolve({ ... }) }, } }) ``` This was necessary, as during the manual QA, I realised that StackBlitz always fails with "socket hang up" errors when downloading Prisma binaries. Note: I had previously attempted to re-use the `vitest.config.ts` file that was originally created in `packages/cli`, and install `vitest` only once, at the workspace level. I reverted that in prisma@964aae7, as I realised that Vitest tests are sometimes stored in `*.vitest.ts`, and other times in `.test.ts`, depending on whether Jest is also run in the same package directory. Until we completely get rid of Jest, there is little we can do to share a single `vitest.config.ts` file. --------- Co-authored-by: jkomyno <12381818+jkomyno@users.noreply.github.com>
fix: use absolute path file URL for subcommand loading (prisma#27199) Prior to 6.8.1, the subcommand loading mechanism was failing on Windows because it was using an absolute path without the `file://` protocol, making the disk name looks like a protocol and thus the whole path becoming an invalid URL. In 6.8.1, this was worked around by using a relative path, but this again broke on Windows if the CLI installation path and the subcommand temporary directory are on different drives. The correct fix for the issue is to use a `file://` URL with the absolute path to the subcommand. This was not done in 6.8.1 because it broke the tests. However, the reason that broke the tests was not in our code, but in Jest itself, which has atrocious ESM support and doesn't know how to handle the `file://` URLs. This commit fixes the issue by using a `file://` URL for the absolute path, and changes the `SubCommand.test.ts` test to run under Vitest instead of Jest. Going forward, we can gradually migrate the rest of the tests to Vitest. Fixes: prisma#27195 Closes: https://linear.app/prisma-company/issue/ORM-983/bug-subcommand-esm-module-resolution-fails-on-windows
fix: fix subcommand loading on windows (prisma#27193) On windows the module path needs to be prefixed with `file://`. Fixes prisma#27192
feat: ORM-941 create credentials store package (prisma#27171) Adds a dedicated package to handle credential storage for our CLI and VSCode extension. As per the described in https://www.notion.so/prismaio/Technical-Design-10xPPg-VSCode-Extension-1ea9e8aecef780ee94c4e555c8bc568b
feat(cli): add MCP server (prisma#26700) /integration --------- Co-authored-by: Alberto Schiabel <jkomyno@users.noreply.github.com> Co-authored-by: Alexey Orlenko <alex@aqrln.net>
feat(neon): support neon serverless v1 (prisma#26561) Adding support for upcoming neon v1 as per neondatabase/serverless#145.
fix(cli): be more cautious about showing the NPS survey (prisma#26375)
PreviousNext