Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -155,11 +155,11 @@ Once the data model is defined, you can [generate Prisma Client](/orm/prisma-cli

#### Generating Prisma Client

The first step when using Prisma Client is installing the `@prisma/client` and `prisma` npm packages:
The first step when using Prisma Client is installing the `@prisma/client`, appropriate adapter (`@prisma/adapter-pg` for PostgreSQL) and `prisma` npm packages:

```terminal
npm install prisma --save-dev
npm install @prisma/client
npm install @prisma/client @prisma/adapter-pg
```

Then, you can run `prisma generate`:
Expand All @@ -183,17 +183,21 @@ Once Prisma Client has been generated, you can import it in your code and send q

```ts
import { PrismaClient } from './generated/client'
import { PrismaPg } from '@prisma/adapter-pg';

const prisma = new PrismaClient()
const adapter = new PrismaPg({ connectionString: process.env.DATABASE_URL });
const prisma = new PrismaClient({ adapter })
```
Comment on lines 185 to 190
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor

Use a connectionString constant to keep TS types happy and align doc conventions.

process.env.DATABASE_URL is string | undefined in TS, so the current example can fail type-checking. Defining a connectionString constant (with a template literal) both satisfies TS and keeps adapter examples consistent across docs. Based on learnings, ...

🔧 Suggested update for both tabs
-import { PrismaPg } from '@prisma/adapter-pg';
-
-const adapter = new PrismaPg({ connectionString: process.env.DATABASE_URL });
+import { PrismaPg } from '@prisma/adapter-pg'
+
+const connectionString = `${process.env.DATABASE_URL}`
+const adapter = new PrismaPg({ connectionString })
 const prisma = new PrismaClient({ adapter })
-const { PrismaPg } = require('@prisma/adapter-pg')
-
-const adapter = new PrismaPg({ connectionString: process.env.DATABASE_URL })
+const { PrismaPg } = require('@prisma/adapter-pg')
+
+const connectionString = `${process.env.DATABASE_URL}`
+const adapter = new PrismaPg({ connectionString })
 const prisma = new PrismaClient({ adapter })
PrismaPg adapter connectionString TypeScript example Prisma docs

Also applies to: 196-200

🤖 Prompt for AI Agents
In `@content/200-orm/050-overview/100-introduction/100-what-is-prisma.mdx` around
lines 185 - 190, The example passes process.env.DATABASE_URL directly to
PrismaPg and can fail TypeScript checks because process.env.DATABASE_URL is
string | undefined; define a connectionString constant (e.g., const
connectionString = `${process.env.DATABASE_URL}`) and pass that to new
PrismaPg(...) and to new PrismaClient(...) where the adapter is set so the types
are satisfied and the docs remain consistent; update both occurrences around the
PrismaPg/PrismaClient examples to use the connectionString constant instead of
process.env.DATABASE_URL directly.


</TabItem>
<TabItem value="require">

```js
const { PrismaClient } = require('./generated/client')
const { PrismaPg } = require('@prisma/adapter-pg')

const prisma = new PrismaClient()
const adapter = new PrismaPg({ connectionString: process.env.DATABASE_URL })
const prisma = new PrismaClient({ adapter })
```

</TabItem>
Expand Down