Skip to main content
Glama

Prisma MCP Server

Official
by prisma
Apache 2.0
4
44,216
  • Linux
  • Apple
tests.ts3.7 kB
import path from 'node:path' import type { D1Database } from '@cloudflare/workers-types' import { PrismaD1 } from '@prisma/adapter-d1' import { PrismaPg } from '@prisma/adapter-pg' import { PrismaPlanetScale } from '@prisma/adapter-planetscale' import { getPlatformProxy } from 'wrangler' import type { PrismaClientInitializationError } from '../../../../src/runtime/core/errors/PrismaClientInitializationError' import { Providers } from '../../_utils/providers' import { type DatasourceInfo } from '../../_utils/setupTestSuiteEnv' import { NewPrismaClient } from '../../_utils/types' import testMatrix from './_matrix' // @ts-ignore import type { PrismaClient } from './generated/prisma/client' declare let datasourceInfo: DatasourceInfo declare const newPrismaClient: NewPrismaClient<PrismaClient, typeof PrismaClient> // https://github.com/prisma/prisma/issues/21864 testMatrix.setupTestSuite( ({ driverAdapter, provider }) => { testIf(driverAdapter === 'js_pg' && provider === Providers.MYSQL)( '@prisma/adapter-pg cannot be used with `provider = "mysql"`', () => { expect.assertions(2) const adapter = new PrismaPg({ connectionString: datasourceInfo.databaseUrl }) try { newPrismaClient({ adapter, }) } catch (error) { const e = error as PrismaClientInitializationError expect(e.constructor.name).toEqual('PrismaClientInitializationError') expect(e.message).toMatchInlineSnapshot( `"The Driver Adapter \`@prisma/adapter-pg\`, based on \`postgres\`, is not compatible with the provider \`mysql\` specified in the Prisma schema."`, ) } }, ) testIf(driverAdapter === 'js_planetscale' && provider === Providers.SQLITE)( '@prisma/adapter-planetscale cannot be used with `provider = "sqlite"`', () => { expect.assertions(2) const adapter = new PrismaPlanetScale({ url: datasourceInfo.databaseUrl, fetch }) try { newPrismaClient({ adapter, }) } catch (error) { const e = error as PrismaClientInitializationError expect(e.constructor.name).toEqual('PrismaClientInitializationError') expect(e.message).toMatchInlineSnapshot( `"The Driver Adapter \`@prisma/adapter-planetscale\`, based on \`mysql\`, is not compatible with the provider \`sqlite\` specified in the Prisma schema."`, ) } }, ) testIf(driverAdapter === 'js_d1' && provider === Providers.POSTGRESQL)( '@prisma/adapter-d1 cannot be used with `provider = "postgresql"`', async () => { expect.assertions(2) const { env, dispose } = await getPlatformProxy<{ D1_DATABASE: D1Database }>({ configPath: path.join(__dirname, './wrangler.toml'), }) const d1Client = env.D1_DATABASE const adapter = new PrismaD1(d1Client) try { newPrismaClient({ adapter, }) } catch (error) { const e = error as PrismaClientInitializationError expect(e.constructor.name).toEqual('PrismaClientInitializationError') expect(e.message).toMatchInlineSnapshot( `"The Driver Adapter \`@prisma/adapter-d1\`, based on \`sqlite\`, is not compatible with the provider \`postgres\` specified in the Prisma schema."`, ) } finally { await dispose() } }, ) }, { skipDb: true, skipDefaultClientInstance: true, optOut: { from: ['cockroachdb', 'mongodb', 'sqlserver'], reason: `We don't have Driver Adapters for these databases yet.`, }, }, )

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/prisma/prisma'

If you have feedback or need assistance with the MCP directory API, please join our Discord server