Skip to content

docs: fix highlighting in text and dotenv code blocks#7660

Open
AmanVarshney01 wants to merge 5 commits intomainfrom
aman/fix-docs-code-highlighting
Open

docs: fix highlighting in text and dotenv code blocks#7660
AmanVarshney01 wants to merge 5 commits intomainfrom
aman/fix-docs-code-highlighting

Conversation

@AmanVarshney01
Copy link
Member

@AmanVarshney01 AmanVarshney01 commented Mar 16, 2026

Summary

  • switch plain-text-like docs examples from inline [!code ...] markers to Fumadocs-supported fence metadata
  • update current docs and v6 docs for affected text and dotenv code blocks
  • document the supported authoring pattern in guides/making-guides.mdx

Verification

  • scanned the docs tree to confirm there are no inline [!code ...] markers left inside text or dotenv fences
  • pnpm --dir apps/docs types:check

Notes

  • inline [!code ++] / [!code --] markers remain in normal code fences where Fumadocs supports them

Summary by CodeRabbit

  • Documentation
    • Standardized environment examples to use bash code fences and shell-style (#) inline comments.
    • Simplified code-block presentation by removing line-number/highlight decorations.
    • Updated select env examples to show new variable names and an updated sample production host.
    • Clarified guidance for annotating .env/snippet blocks for consistent rendering.

@vercel
Copy link

vercel bot commented Mar 16, 2026

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
blog Ready Ready Preview, Comment Mar 16, 2026 8:59pm
docs Ready Ready Preview, Comment Mar 16, 2026 8:59pm
eclipse Ready Ready Preview, Comment Mar 16, 2026 8:59pm

Request Review

@coderabbitai
Copy link
Contributor

coderabbitai bot commented Mar 16, 2026

Note

Reviews paused

It looks like this branch is under active development. To avoid overwhelming you with review comments due to an influx of new commits, CodeRabbit has automatically paused this review. You can configure this behavior by changing the reviews.auto_review.auto_pause_after_reviewed_commits setting.

Use the following commands to manage reviews:

  • @coderabbitai resume to resume automatic reviews.
  • @coderabbitai review to trigger a single review.

Use the checkboxes below for quick actions:

  • ▶️ Resume reviews
  • 🔍 Trigger review

Walkthrough

Formatting-only updates across many MDX docs: code-fence language specifiers changed (mostly to bash), inline env comment markers converted from ///JSX/C-style to #, some showLineNumbers/highlight directives were removed or adjusted, and a few env examples renamed (e.g., PPG_*, DIRECT_URL) or had one production host updated.

Changes

Cohort / File(s) Summary
Quickstarts (MySQL & SQL Server)
apps/docs/content/docs.v6/(index)/prisma-orm/quickstart/mysql.mdx, apps/docs/content/docs.v6/(index)/prisma-orm/quickstart/sql-server.mdx, apps/docs/content/docs/(index)/prisma-orm/quickstart/mysql.mdx, apps/docs/content/docs/(index)/prisma-orm/quickstart/sql-server.mdx
Normalized .env code-fence language to bash and converted inline comments from // to #; values preserved.
Add-to-existing project examples
apps/docs/content/docs/(index)/prisma-orm/add-to-existing-project/mysql.mdx, apps/docs/content/docs/(index)/prisma-orm/add-to-existing-project/sql-server.mdx
Switched .env fences to bash; adjusted SQL Server snippet lines and converted inline annotation style to #.
Auth & identity guides
apps/docs/content/docs.v6/guides/authjs-nextjs.mdx, apps/docs/content/docs.v6/guides/*betterauth*.mdx, apps/docs/content/docs.v6/guides/*clerk*.mdx, apps/docs/content/docs/guides/authentication/*/*.mdx
Changed dotenv/code-fence language to bash and replaced ///JSX-style annotations with # in AUTH_, BETTER_AUTH_, CLERK_* .env examples.
Runtimes & multiple DBs
apps/docs/content/docs.v6/guides/bun.mdx, apps/docs/content/docs.v6/guides/deno.mdx, apps/docs/content/docs.v6/guides/multiple-databases.mdx, apps/docs/content/docs.v6/guides/turborepo.mdx, apps/docs/content/docs/guides/database/multiple-databases.mdx
Converted fences to bash, switched inline comment markers to #, and updated some examples to use new env names (PPG_*/DIRECT_URL) where shown.
Deployment & serverless docs
apps/docs/content/docs.v6/orm/prisma-client/deployment/serverless/deploy-to-aws-lambda.mdx, apps/docs/content/docs/orm/prisma-client/deployment/deploy-migrations-from-a-local-environment.mdx, apps/docs/content/docs.v6/orm/prisma-client/deployment/deploy-migrations-from-a-local-environment.mdx, apps/docs/content/docs/guides/deployment/docker.mdx, apps/docs/content/docs.v6/orm/prisma-client/deployment/edge/deploy-to-vercel.mdx
Removed showLineNumbers/some highlight directives; normalized .env fences to bash; one production DATABASE_URL host updated to prod-db.example.com.
Schema & location example
apps/docs/content/docs.v6/orm/prisma-schema/overview/location.mdx, apps/docs/content/docs/orm/prisma-schema/overview/location.mdx
Removed an inline code highlight directive from a terminal output line; text otherwise unchanged.
Poolers / DB provider docs
apps/docs/content/docs.v6/orm/overview/databases/supabase.mdx, apps/docs/content/docs.v6/orm/overview/databases/neon.mdx, apps/docs/content/docs.v6/orm/prisma-client/setup-and-configuration/databases-connections/index.mdx, apps/docs/content/docs.v6/orm/prisma-client/setup-and-configuration/databases-connections/pgbouncer.mdx
Changed .env fences to bash, removed highlight/showLineNumbers metadata, and added inline # [!code ++] annotations on some DIRECT_URL/DATABASE_URL lines; sample snippets added/adjusted in a few places.
Contributor guidance & examples
apps/docs/content/docs/guides/making-guides.mdx, apps/docs/content/docs.v6/accelerate/getting-started.mdx, apps/docs/content/docs/accelerate/getting-started.mdx, apps/docs/content/docs.v6/orm/more/ai-tools/windsurf.mdx, apps/docs/content/docs/ai/tools/windsurf.mdx
Rewrote guidance to prefer bash fences for .env, replaced/removed showLineNumbers/highlight flags, and illustrated Fumadocs annotations as # comments in .env examples.
Misc documentation formatting fixes
many other MDX files under apps/docs/content/docs/** and apps/docs/content/docs.v6/** (e.g., guides/deployment/docker.mdx, guides/turborepo.mdx, guides/runtimes/*, etc.)
Widespread, consistent formatting edits: convert code-fence language to bash or adjust text fences, replace ///JSX comment markers with #, and remove or tweak showLineNumbers/highlight metadata. No behavioral changes.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~10 minutes

🚥 Pre-merge checks | ✅ 3
✅ Passed checks (3 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title accurately reflects the primary change: converting code blocks from text/dotenv fencing with inline markers to bash fencing with proper Fumadocs annotations.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

📝 Coding Plan
  • Generate coding plan for human review comments

Comment @coderabbitai help to get the list of available commands and usage tips.

@argos-ci
Copy link

argos-ci bot commented Mar 16, 2026

The latest updates on your projects. Learn more about Argos notifications ↗︎

Build Status Details Updated (UTC)
default (Inspect) ✅ No changes detected - Mar 16, 2026, 9:16 PM

Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 1

🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In
`@apps/docs/content/docs/orm/prisma-client/deployment/deploy-migrations-from-a-local-environment.mdx`:
- Around line 21-25: The example .env in
deploy-migrations-from-a-local-environment.mdx incorrectly uses localhost for a
"production connection URL"; update the DATABASE_URL example so the host is a
non-local production hostname (e.g., replace "localhost" with something like
"prod-db.example.com") in the DATABASE_URL string to avoid confusion for
operators performing production migrations.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: 335a9bc9-949f-48af-b006-77de5fd131e5

📥 Commits

Reviewing files that changed from the base of the PR and between 8cd4d20 and 755f0c4.

📒 Files selected for processing (37)
  • apps/docs/content/docs.v6/(index)/prisma-orm/quickstart/mysql.mdx
  • apps/docs/content/docs.v6/(index)/prisma-orm/quickstart/sql-server.mdx
  • apps/docs/content/docs.v6/accelerate/getting-started.mdx
  • apps/docs/content/docs.v6/guides/authjs-nextjs.mdx
  • apps/docs/content/docs.v6/guides/betterauth-astro.mdx
  • apps/docs/content/docs.v6/guides/betterauth-nextjs.mdx
  • apps/docs/content/docs.v6/guides/bun.mdx
  • apps/docs/content/docs.v6/guides/clerk-astro.mdx
  • apps/docs/content/docs.v6/guides/clerk-nextjs.mdx
  • apps/docs/content/docs.v6/guides/multiple-databases.mdx
  • apps/docs/content/docs.v6/guides/turborepo.mdx
  • apps/docs/content/docs.v6/orm/more/ai-tools/windsurf.mdx
  • apps/docs/content/docs.v6/orm/overview/databases/neon.mdx
  • apps/docs/content/docs.v6/orm/overview/databases/supabase.mdx
  • apps/docs/content/docs.v6/orm/prisma-client/deployment/serverless/deploy-to-aws-lambda.mdx
  • apps/docs/content/docs.v6/orm/prisma-client/setup-and-configuration/databases-connections/index.mdx
  • apps/docs/content/docs.v6/orm/prisma-client/setup-and-configuration/databases-connections/pgbouncer.mdx
  • apps/docs/content/docs.v6/orm/prisma-schema/overview/location.mdx
  • apps/docs/content/docs/(index)/prisma-orm/add-to-existing-project/mysql.mdx
  • apps/docs/content/docs/(index)/prisma-orm/add-to-existing-project/sql-server.mdx
  • apps/docs/content/docs/(index)/prisma-orm/quickstart/mysql.mdx
  • apps/docs/content/docs/(index)/prisma-orm/quickstart/sql-server.mdx
  • apps/docs/content/docs/accelerate/getting-started.mdx
  • apps/docs/content/docs/ai/tools/windsurf.mdx
  • apps/docs/content/docs/guides/authentication/authjs/nextjs.mdx
  • apps/docs/content/docs/guides/authentication/better-auth/astro.mdx
  • apps/docs/content/docs/guides/authentication/better-auth/nextjs.mdx
  • apps/docs/content/docs/guides/authentication/clerk/astro.mdx
  • apps/docs/content/docs/guides/authentication/clerk/nextjs.mdx
  • apps/docs/content/docs/guides/database/multiple-databases.mdx
  • apps/docs/content/docs/guides/deployment/docker.mdx
  • apps/docs/content/docs/guides/making-guides.mdx
  • apps/docs/content/docs/guides/runtimes/bun.mdx
  • apps/docs/content/docs/guides/runtimes/deno.mdx
  • apps/docs/content/docs/orm/prisma-client/deployment/deploy-migrations-from-a-local-environment.mdx
  • apps/docs/content/docs/orm/prisma-client/deployment/edge/deploy-to-vercel.mdx
  • apps/docs/content/docs/orm/prisma-schema/overview/location.mdx
✅ Files skipped from review due to trivial changes (6)
  • apps/docs/content/docs.v6/orm/prisma-client/setup-and-configuration/databases-connections/pgbouncer.mdx
  • apps/docs/content/docs.v6/orm/prisma-client/setup-and-configuration/databases-connections/index.mdx
  • apps/docs/content/docs/ai/tools/windsurf.mdx
  • apps/docs/content/docs.v6/orm/overview/databases/neon.mdx
  • apps/docs/content/docs/guides/authentication/clerk/astro.mdx
  • apps/docs/content/docs/orm/prisma-client/deployment/edge/deploy-to-vercel.mdx
🚧 Files skipped from review as they are similar to previous changes (17)
  • apps/docs/content/docs/guides/authentication/better-auth/astro.mdx
  • apps/docs/content/docs.v6/(index)/prisma-orm/quickstart/mysql.mdx
  • apps/docs/content/docs.v6/orm/prisma-schema/overview/location.mdx
  • apps/docs/content/docs.v6/guides/clerk-astro.mdx
  • apps/docs/content/docs/guides/authentication/authjs/nextjs.mdx
  • apps/docs/content/docs.v6/guides/bun.mdx
  • apps/docs/content/docs/(index)/prisma-orm/add-to-existing-project/mysql.mdx
  • apps/docs/content/docs.v6/guides/betterauth-astro.mdx
  • apps/docs/content/docs/(index)/prisma-orm/quickstart/mysql.mdx
  • apps/docs/content/docs/(index)/prisma-orm/add-to-existing-project/sql-server.mdx
  • apps/docs/content/docs.v6/guides/betterauth-nextjs.mdx
  • apps/docs/content/docs/guides/runtimes/bun.mdx
  • apps/docs/content/docs/guides/authentication/better-auth/nextjs.mdx
  • apps/docs/content/docs/(index)/prisma-orm/quickstart/sql-server.mdx
  • apps/docs/content/docs.v6/guides/turborepo.mdx
  • apps/docs/content/docs.v6/guides/authjs-nextjs.mdx
  • apps/docs/content/docs/guides/runtimes/deno.mdx

Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 1

🧹 Nitpick comments (1)
apps/docs/content/docs/guides/making-guides.mdx (1)

181-187: Redundant annotation approaches in the example.

The example uses both fence metadata (highlight=1;delete|3;add) and inline markers (# [!code --]/# [!code ++]) to mark the same lines for deletion/addition styling. This double-specification is redundant and may confuse guide authors about which technique they should actually use.

Consider either:

  1. Using only the inline markers (since the text says "use bash comments for the Fumadocs annotations"), or
  2. Adding a note explaining that the example deliberately shows both methods working together.
♻️ Suggested simplification (use only inline markers)
-```bash title=".env" highlight=1;delete|3;add showLineNumbers
+```bash title=".env" showLineNumbers
 DATABASE_URL="postgresql://user:password@localhost:5432/mydb" # [!code --]

 DATABASE_URL="postgresql://user:password@db.example.com:5432/mydb" # [!code ++]
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@apps/docs/content/docs/guides/making-guides.mdx` around lines 181 - 187, The
example currently double-specifies deletions/additions using fence metadata
("highlight=1;delete|3;add") and inline markers ("# [!code --]" / "# [!code
++]"); remove the fence-level metadata and keep only the bash code-fence with
title/showLineNumbers (e.g., change the opening fence to just specify
language/title/showLineNumbers) and rely on the inline markers "# [!code --]"
and "# [!code ++]" to indicate removed/added lines so the example matches the
guidance to "use bash comments for the Fumadocs annotations."
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@apps/docs/content/docs.v6/accelerate/getting-started.mdx`:
- Around line 47-50: The fenced code block already uses fence metadata
`title=".env" highlight=2;add`; remove the inline marker `# [!code ++]` from the
second line (the DIRECT_DATABASE_URL line) to avoid double-styling and keep the
single source of truth for highlighting/styling; leave the fence metadata and
contents otherwise unchanged.

---

Nitpick comments:
In `@apps/docs/content/docs/guides/making-guides.mdx`:
- Around line 181-187: The example currently double-specifies
deletions/additions using fence metadata ("highlight=1;delete|3;add") and inline
markers ("# [!code --]" / "# [!code ++]"); remove the fence-level metadata and
keep only the bash code-fence with title/showLineNumbers (e.g., change the
opening fence to just specify language/title/showLineNumbers) and rely on the
inline markers "# [!code --]" and "# [!code ++]" to indicate removed/added lines
so the example matches the guidance to "use bash comments for the Fumadocs
annotations."

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: 8ed4f6ae-89a1-4b80-8974-553c604c8995

📥 Commits

Reviewing files that changed from the base of the PR and between 0e68550 and 32fc36c.

📒 Files selected for processing (35)
  • apps/docs/content/docs.v6/(index)/prisma-orm/quickstart/mysql.mdx
  • apps/docs/content/docs.v6/(index)/prisma-orm/quickstart/sql-server.mdx
  • apps/docs/content/docs.v6/accelerate/getting-started.mdx
  • apps/docs/content/docs.v6/guides/authjs-nextjs.mdx
  • apps/docs/content/docs.v6/guides/betterauth-astro.mdx
  • apps/docs/content/docs.v6/guides/betterauth-nextjs.mdx
  • apps/docs/content/docs.v6/guides/bun.mdx
  • apps/docs/content/docs.v6/guides/clerk-astro.mdx
  • apps/docs/content/docs.v6/guides/clerk-nextjs.mdx
  • apps/docs/content/docs.v6/guides/multiple-databases.mdx
  • apps/docs/content/docs.v6/guides/turborepo.mdx
  • apps/docs/content/docs.v6/orm/overview/databases/neon.mdx
  • apps/docs/content/docs.v6/orm/overview/databases/supabase.mdx
  • apps/docs/content/docs.v6/orm/prisma-client/deployment/serverless/deploy-to-aws-lambda.mdx
  • apps/docs/content/docs.v6/orm/prisma-client/setup-and-configuration/databases-connections/index.mdx
  • apps/docs/content/docs.v6/orm/prisma-client/setup-and-configuration/databases-connections/pgbouncer.mdx
  • apps/docs/content/docs/(index)/prisma-orm/add-to-existing-project/mysql.mdx
  • apps/docs/content/docs/(index)/prisma-orm/add-to-existing-project/sql-server.mdx
  • apps/docs/content/docs/(index)/prisma-orm/quickstart/mysql.mdx
  • apps/docs/content/docs/(index)/prisma-orm/quickstart/sql-server.mdx
  • apps/docs/content/docs/accelerate/getting-started.mdx
  • apps/docs/content/docs/guides/authentication/authjs/nextjs.mdx
  • apps/docs/content/docs/guides/authentication/better-auth/astro.mdx
  • apps/docs/content/docs/guides/authentication/better-auth/nextjs.mdx
  • apps/docs/content/docs/guides/authentication/clerk/astro.mdx
  • apps/docs/content/docs/guides/authentication/clerk/nextjs.mdx
  • apps/docs/content/docs/guides/database/multiple-databases.mdx
  • apps/docs/content/docs/guides/deployment/docker.mdx
  • apps/docs/content/docs/guides/making-guides.mdx
  • apps/docs/content/docs/guides/runtimes/bun.mdx
  • apps/docs/content/docs/guides/runtimes/deno.mdx
  • apps/docs/content/docs/orm/prisma-client/deployment/deploy-migrations-from-a-local-environment.mdx
  • apps/docs/content/docs/orm/prisma-client/deployment/edge/deploy-to-vercel.mdx
  • apps/docs/content/docs/orm/prisma-client/setup-and-configuration/databases-connections/index.mdx
  • apps/docs/content/docs/orm/prisma-client/setup-and-configuration/databases-connections/pgbouncer.mdx
✅ Files skipped from review due to trivial changes (5)
  • apps/docs/content/docs/guides/authentication/clerk/astro.mdx
  • apps/docs/content/docs.v6/guides/bun.mdx
  • apps/docs/content/docs.v6/guides/clerk-astro.mdx
  • apps/docs/content/docs.v6/orm/overview/databases/supabase.mdx
  • apps/docs/content/docs.v6/orm/prisma-client/setup-and-configuration/databases-connections/index.mdx
🚧 Files skipped from review as they are similar to previous changes (16)
  • apps/docs/content/docs.v6/(index)/prisma-orm/quickstart/sql-server.mdx
  • apps/docs/content/docs.v6/orm/prisma-client/setup-and-configuration/databases-connections/pgbouncer.mdx
  • apps/docs/content/docs.v6/orm/prisma-client/deployment/serverless/deploy-to-aws-lambda.mdx
  • apps/docs/content/docs/guides/authentication/better-auth/nextjs.mdx
  • apps/docs/content/docs.v6/guides/authjs-nextjs.mdx
  • apps/docs/content/docs/accelerate/getting-started.mdx
  • apps/docs/content/docs/guides/runtimes/deno.mdx
  • apps/docs/content/docs.v6/orm/overview/databases/neon.mdx
  • apps/docs/content/docs/(index)/prisma-orm/add-to-existing-project/sql-server.mdx
  • apps/docs/content/docs/orm/prisma-client/deployment/edge/deploy-to-vercel.mdx
  • apps/docs/content/docs/guides/runtimes/bun.mdx
  • apps/docs/content/docs.v6/guides/betterauth-nextjs.mdx
  • apps/docs/content/docs/(index)/prisma-orm/quickstart/sql-server.mdx
  • apps/docs/content/docs.v6/(index)/prisma-orm/quickstart/mysql.mdx
  • apps/docs/content/docs.v6/guides/multiple-databases.mdx
  • apps/docs/content/docs.v6/guides/turborepo.mdx

Comment on lines 47 to 50
```bash title=".env" highlight=2;add showLineNumbers
DATABASE_URL="prisma://accelerate.prisma-data.net/?api_key=__API_KEY__"
DIRECT_DATABASE_URL="postgresql://user:password@host:port/db_name?schema=public"
DIRECT_DATABASE_URL="postgresql://user:password@host:port/db_name?schema=public" # [!code ++]
```
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

Redundant highlighting: both fence metadata and inline marker are applied.

Line 49 is marked as an addition twice:

  1. highlight=2;add in the fence metadata (line 47)
  2. # [!code ++] inline marker (line 49)

Since the PR's direction is to migrate toward fence metadata for consistency, consider removing the inline marker to avoid potential double-styling and reduce maintenance confusion.

🔧 Suggested fix
-DIRECT_DATABASE_URL="postgresql://user:password@host:port/db_name?schema=public" # [!code ++]
+DIRECT_DATABASE_URL="postgresql://user:password@host:port/db_name?schema=public"
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@apps/docs/content/docs.v6/accelerate/getting-started.mdx` around lines 47 -
50, The fenced code block already uses fence metadata `title=".env"
highlight=2;add`; remove the inline marker `# [!code ++]` from the second line
(the DIRECT_DATABASE_URL line) to avoid double-styling and keep the single
source of truth for highlighting/styling; leave the fence metadata and contents
otherwise unchanged.

Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 1

🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@apps/docs/content/docs/guides/making-guides.mdx`:
- Around line 181-187: The example in making-guides.mdx uses live Fumadocs
markers "# [!code --]" and "# [!code ++]" which will be rendered instead of
shown; update the example so readers see the literal annotation syntax by either
escaping the markers (e.g., use "[\!code --]" and "[\!code ++]"), wrapping the
example inside a raw/escaped MDX fence (a code block showing the literal text),
or adding a raw text block before the styled example; locate the lines
containing the literal strings "# [!code --]" and "# [!code ++]" and replace
them with the escaped or fenced version so the rendered docs display the
annotation text instead of applying it.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: 06c95e76-cbfb-44b8-a784-2cc67f33c7b6

📥 Commits

Reviewing files that changed from the base of the PR and between 32fc36c and f5170f6.

📒 Files selected for processing (21)
  • apps/docs/content/docs.v6/accelerate/getting-started.mdx
  • apps/docs/content/docs.v6/guides/betterauth-astro.mdx
  • apps/docs/content/docs.v6/guides/betterauth-nextjs.mdx
  • apps/docs/content/docs.v6/guides/clerk-nextjs.mdx
  • apps/docs/content/docs.v6/orm/overview/databases/neon.mdx
  • apps/docs/content/docs.v6/orm/overview/databases/supabase.mdx
  • apps/docs/content/docs.v6/orm/overview/databases/turso.mdx
  • apps/docs/content/docs.v6/orm/prisma-client/deployment/deploy-migrations-from-a-local-environment.mdx
  • apps/docs/content/docs.v6/orm/prisma-client/deployment/edge/deploy-to-vercel.mdx
  • apps/docs/content/docs.v6/orm/prisma-client/deployment/serverless/deploy-to-aws-lambda.mdx
  • apps/docs/content/docs.v6/orm/prisma-client/setup-and-configuration/databases-connections/index.mdx
  • apps/docs/content/docs.v6/orm/prisma-client/setup-and-configuration/databases-connections/pgbouncer.mdx
  • apps/docs/content/docs/accelerate/getting-started.mdx
  • apps/docs/content/docs/guides/authentication/better-auth/astro.mdx
  • apps/docs/content/docs/guides/authentication/better-auth/nextjs.mdx
  • apps/docs/content/docs/guides/authentication/clerk/nextjs.mdx
  • apps/docs/content/docs/guides/making-guides.mdx
  • apps/docs/content/docs/orm/prisma-client/deployment/deploy-migrations-from-a-local-environment.mdx
  • apps/docs/content/docs/orm/prisma-client/deployment/edge/deploy-to-vercel.mdx
  • apps/docs/content/docs/orm/prisma-client/setup-and-configuration/databases-connections/index.mdx
  • apps/docs/content/docs/orm/prisma-client/setup-and-configuration/databases-connections/pgbouncer.mdx
✅ Files skipped from review due to trivial changes (5)
  • apps/docs/content/docs.v6/orm/overview/databases/turso.mdx
  • apps/docs/content/docs/guides/authentication/clerk/nextjs.mdx
  • apps/docs/content/docs/orm/prisma-client/deployment/edge/deploy-to-vercel.mdx
  • apps/docs/content/docs.v6/orm/prisma-client/deployment/edge/deploy-to-vercel.mdx
  • apps/docs/content/docs.v6/accelerate/getting-started.mdx
🚧 Files skipped from review as they are similar to previous changes (8)
  • apps/docs/content/docs/orm/prisma-client/setup-and-configuration/databases-connections/pgbouncer.mdx
  • apps/docs/content/docs/orm/prisma-client/setup-and-configuration/databases-connections/index.mdx
  • apps/docs/content/docs/guides/authentication/better-auth/astro.mdx
  • apps/docs/content/docs.v6/orm/prisma-client/deployment/deploy-migrations-from-a-local-environment.mdx
  • apps/docs/content/docs.v6/guides/clerk-nextjs.mdx
  • apps/docs/content/docs.v6/orm/prisma-client/deployment/serverless/deploy-to-aws-lambda.mdx
  • apps/docs/content/docs/guides/authentication/better-auth/nextjs.mdx
  • apps/docs/content/docs.v6/orm/overview/databases/neon.mdx

Comment on lines +181 to +187
If you need to show changes in an `.env` file, use bash comments for the Fumadocs annotations:

```bash title=".env"
DATABASE_URL="postgresql://user:password@localhost:5432/mydb" # [!code --]

DATABASE_URL="postgresql://user:password@db.example.com:5432/mydb" # [!code ++]
```
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

❓ Verification inconclusive

Script executed:

# Check the file and read lines around 181-187
fd -t f "making-guides.mdx" --exec cat -n {} \; | sed -n '170,200p'

Repository: prisma/web


Repository: prisma/web
Exit code: 0

stdout:

   170	npm install prisma --save-dev
   171	```
   172	
   173	### Environment variables
   174	
   175	Show `.env` file examples using ` ```bash title=".env" ` blocks:
   176	
   177	```bash title=".env"
   178	DATABASE_URL="postgresql://user:password@localhost:5432/mydb"
   179	```
   180	
   181	If you need to show changes in an `.env` file, use bash comments for the Fumadocs annotations:
   182	
   183	```bash title=".env"
   184	DATABASE_URL="postgresql://user:password@localhost:5432/mydb" # [!code --]
   185	
   186	DATABASE_URL="postgresql://user:password@db.example.com:5432/mydb" # [!code ++]
   187	```
   188	
   189	### Database provider compatibility
   190	
   191	Include an info admonition when commands or code are PostgreSQL-specific:
   192	
   193	```markdown
   194	:::info
   195	
   196	If you are using a different database provider (MySQL, SQL Server, SQLite), install the corresponding driver adapter package instead of `@prisma/adapter-pg`. For more information, see [Database drivers](/orm/core-concepts/supported-databases/database-drivers).
   197	
   198	:::
   199	```
   200	

Script executed:

# Also check if there's a Fumadocs config or documentation about how it processes code blocks
fd -t f -E node_modules "fumadocs.config" -o "fumadocs.ts" -o "fumadocs.js" | head -5

Repository: prisma/web


Repository: prisma/web
Exit code: 0

stderr:

error: Invalid value 'fumadocs.ts' for '--owner <user:group>': 'fumadocs.ts' is not a recognized user name

For more information try '--help'

Script executed:

# Search for Fumadocs related configs and usage patterns
rg "fumadocs" -t ts -t js -t json --max-count=10 -i

Repository: prisma/web


Repository: prisma/web
Exit code: 0

stdout:

packages/ui/src/components/button.tsx:      // fumadocs use `color` instead of `variant`
packages/ui/src/lib/openapi.ts:import { createOpenAPI } from "fumadocs-openapi/server";
packages/ui/src/lib/get-llm-text.ts:import type { InferPageType } from "fumadocs-core/source";
apps/eclipse/package.json:    "types:check": "fumadocs-mdx && next typegen && tsc --noEmit",
apps/eclipse/package.json:    "postinstall": "fumadocs-mdx"
apps/eclipse/package.json:    "@fumadocs/base-ui": "catalog:",
apps/eclipse/package.json:    "@fumadocs/cli": "catalog:",
apps/eclipse/package.json:    "fumadocs-core": "catalog:",
apps/eclipse/package.json:    "fumadocs-mdx": "catalog:",
apps/eclipse/package.json:    "fumadocs-ui": "catalog:",
apps/eclipse/tsconfig.json:      "fumadocs-mdx:collections/*": [".source/*"]
apps/eclipse/src/mdx-components.tsx:import defaultMdxComponents from "fumadocs-ui/mdx";
apps/eclipse/src/mdx-components.tsx:import { ImageZoom } from "fumadocs-ui/components/image-zoom";
apps/eclipse/src/mdx-components.tsx:    // Fumadocs tabs for manual usage (with items prop)
apps/eclipse/src/components/ui/button.tsx:      // fumadocs use `color` instead of `variant`
apps/eclipse/src/components/layout/search-toggle.tsx:import { useSearchContext } from '@fumadocs/base-ui/contexts/search';
apps/eclipse/src/components/layout/search-toggle.tsx:import { useI18n } from '@fumadocs/base-ui/contexts/i18n';
apps/eclipse/src/components/layout/shared.tsx:import type { I18nConfig } from 'fumadocs-core/i18n';
apps/eclipse/src/components/layout/shared.tsx:import Link from 'fumadocs-core/link';
apps/docs/cli.json:  "$schema": "node_modules/@fumadocs/cli/dist/schema/src.json",
apps/eclipse/src/components/layout/sidebar/base.tsx:import Link, { type LinkProps } from 'fumadocs-core/link';
apps/eclipse/src/components/layout/sidebar/base.tsx:import { useOnChange } from 'fumadocs-core/utils/use-on-change';
apps/eclipse/src/components/layout/sidebar/base.tsx:import { useMediaQuery } from 'fumadocs-core/utils/use-media-query';
apps/eclipse/src/components/layout/sidebar/base.tsx:import { usePathname } from 'fumadocs-core/framework';
apps/eclipse/src/components/layout/notebook/client.tsx:import Link from 'fumadocs-core/link';
apps/eclipse/src/components/layout/notebook/client.tsx:import { usePathname } from 'fumadocs-core/framework';
apps/eclipse/src/components/layout/notebook/client.tsx:import { useIsScrollTop } from '@fumadocs/base-ui/utils/use-is-scroll-top';
apps/docs/tsconfig.json:      "fumadocs-mdx:collections/*": [
apps/docs/source.config.ts:} from "fumadocs-core/mdx-plugins";
apps/docs/source.config.ts:import { remarkImage } from "fumadocs-core/mdx-plugins";
apps/docs/source.config.ts:} from "fumadocs-mdx/config";
apps/docs/source.config.ts:import lastModified from "fumadocs-mdx/plugins/last-modified";
apps/docs/source.config.ts:// see https://fumadocs.dev/docs/mdx/collections
apps/docs/src/mdx-components.tsx:import defaultMdxComponents from "fumadocs-ui/mdx";
apps/docs/src/mdx-components.tsx:import { ImageZoom } from "fumadocs-ui/components/image-zoom";
apps/docs/src/mdx-components.tsx:    // Fumadocs tabs for manual usage (with items prop)
apps/docs/src/mdx-components.tsx:    // Override Fumadocs Callout components with Eclipse Alert for alerts (:::ppg, :::error, :::success, :::warning)
apps/docs/src/lib/openapi.ts:import { createOpenAPI } from "fumadocs-openapi/server";
apps/docs/src/lib/layout.shared.tsx:import type { BaseLayoutProps, LinkItemType } from "fumadocs-ui/layouts/shared";
apps/docs/src/lib/source.ts:import { type InferPageType, loader } from "fumadocs-core/source";
apps/docs/src/lib/source.ts:import { lucideIconsPlugin } from "fumadocs-core/source/lucide-icons";
apps/docs/src/lib/source.ts:import { openapiPlugin } from "fumadocs-openapi/server";
apps/docs/src/lib/source.ts:// See https://fumadocs.dev/docs/headless/source-api for more info
apps/docs/src/lib/source.ts:  source: docs.toFumadocsSource(),
apps/docs/src/lib/source.ts:  source: docsV6.toFumadocsSource(),
apps/docs/src/app/not-found.tsx:import type { LinkItemType } from 'fumadocs-ui/layouts/shared';
apps/docs/src/lib/get-llm-text.ts:import type { InferPageType } from "fumadocs-core/source";
apps/docs/scripts/lint-links.ts:import type { InferPageType } from 'fumadocs-core/source';
apps/docs/scripts/lint-links.ts:register('fumadocs-mdx/node/loader', import.meta.url);
apps/docs/src/app/api/search/route.ts:import { createMixedbreadSearchAPI } from "fumadocs-core/search/mixedbread";
apps/docs/src/app/api/search/route.ts:import { SortedResult } from "fumadocs-core/search";
apps/docs/src/app/(docs)/(default)/layout.tsx:import type { LinkItemType } from "fumadocs-ui/layouts/shared";
apps/docs/src/app/(docs)/(default)/[[...slug]]/page.tsx:import { createRelativeLink } from "fumadocs-ui/mdx";
apps/docs/src/components/provider.tsx:import { RootProvider } from 'fumadocs-ui/provider/next';
apps/docs/src/components/provider.tsx:import { NextProvider } from 'fumadocs-core/framework/next';
apps/docs/src/components/provider.tsx:import { TreeContextProvider } from 'fumadocs-ui/contexts/tree';
apps/docs/src/components/api-page.client.tsx:import { defineClientConfig } from "fumadocs-openapi/ui/client";
apps/docs/src/components/structured-data.tsx:import type { InferPageType } from 'fumadocs-core/source';
apps/docs/src/components/toc/clerk.tsx:import * as Primitive from 'fumadocs-core/toc';
apps/docs/src/components/toc/clerk.tsx:import { useI18n } from '@fumadocs/base-ui/contexts/i18n';
apps/docs/src/components/toc/default.tsx:import { useI18n } from '@fumadocs/base-ui/contexts/i18n';
apps/docs/src/components/toc/default.tsx:import * as Primitive from 'fumadocs-core/toc';
apps/docs/src/components/search.tsx:import { useDocsSearch } from 'fumadocs-core/search/client';
apps/docs/src/components/search.tsx:} from 'fumadocs-ui/components/dialog/search';
apps/docs/src/components/page-actions.tsx:import { useCopyButton } from "fumadocs-ui/utils/use-copy-button";
apps/docs/src/components/page-actions.tsx:} from "fumadocs-ui/components/ui/popover";
apps/docs/src/app/(docs)/v6/layout.tsx:import type { LinkItemType } from "fumadocs-ui/layouts/shared";
apps/docs/src/components/api-page.tsx:import { createAPIPage } from "fumadocs-openapi/ui";
apps/docs/src/components/ai-prompt-banner.tsx:import { useCopyButton } from "fumadocs-ui/utils/use-copy-button";
apps/docs/src/app/(docs)/v6/[[...slug]]/page.tsx:import { createRelativeLink } from "fumadocs-ui/mdx";
apps/docs/src/components/layout/search-toggle.tsx:import { useSearchContext } from '@fumadocs/base-ui/contexts/search';
apps/docs/src/components/layout/search-toggle.tsx:import { useI18n } from '@fumadocs/base-ui/contexts/i18n';
apps/eclipse/src/components/layout/notebook/page/index.tsx:import { I18nLabel } from '@fumadocs/base-ui/contexts/i18n';
apps/eclipse/src/components/layout/notebook/page/index.tsx:import type { AnchorProviderProps, TOCItemType } from 'fumadocs-core/toc';
apps/eclipse/src/components/layout/notebook/page/client.tsx:import Link from 'fumadocs-core/link';
apps/eclipse/src/components/layout/notebook/page/client.tsx:import { useI18n } from '@fumadocs/base-ui/contexts/i18n';
apps/eclipse/src/components/layout/notebook/page/client.tsx:import { useTreeContext, useTreePath } from '@fumadocs/base-ui/contexts/tree';
apps/eclipse/src/components/layout/notebook/page/client.tsx:import type * as PageTree from 'fumadocs-core/page-tree';
apps/eclipse/src/components/layout/notebook/page/client.tsx:import { usePathname } from 'fumadocs-core/framework';
apps/eclipse/src/components/layout/notebook/page/client.tsx:import { type BreadcrumbOptions, getBreadcrumbItemsFromPath } from 'fumadocs-core/breadcrumb';
apps/eclipse/src/components/layout/notebook/page/client.tsx:import { useActiveAnchor } from 'fumadocs-core/toc';
apps/eclipse/src/components/layout/notebook/page/client.tsx:import { useFooterItems } from '@fumadocs/base-ui/utils/use-footer-items';
apps/docs/src/components/layout/shared.tsx:import type { I18nConfig } from 'fumadocs-core/i18n';
apps/docs/src/components/layout/shared.tsx:import Link from 'fumadocs-core/link';
apps/docs/src/components/layout/link-item.tsx:import { usePathname } from 'fumadocs-core/framework';
apps/docs/src/components/layout/link-item.tsx:import Link from 'fumadocs-core/link';
apps/docs/src/components/layout/sidebar/tabs/index.tsx:import type * as PageTree from 'fumadocs-core/page-tree';
apps/docs/src/components/layout/notebook/page/index.tsx:import { I18nLabel } from '@fumadocs/base-ui/contexts/i18n';
apps/docs/src/components/layout/notebook/page/index.tsx:import type { AnchorProviderProps, TOCItemType } from 'fumadocs-core/toc';
apps/docs/src/components/layout/notebook/page/client.tsx:import Link from 'fumadocs-core/link';
apps/docs/src/components/layout/notebook/page/client.tsx:import { useI18n } from '@fumadocs/base-ui/contexts/i18n';
apps/docs/src/components/layout/notebook/page/client.tsx:import { useTreeContext, useTreePath } from '@fumadocs/base-ui/contexts/tree';
apps/docs/src/components/layout/notebook/page/client.tsx:import type * as PageTree from 'fumadocs-core/page-tree';
apps/docs/src/components/layout/notebook/page/client.tsx:import { usePathname } from 'fumadocs-core/framework';
apps/docs/src/components/layout/notebook/page/client.tsx:import { type BreadcrumbOptions, getBreadcrumbItemsFromPath } from 'fumadocs-core/breadcrumb';
apps/docs/src/components/layout/notebook/page/client.tsx:import { useActiveAnchor } from 'fumadocs-core/toc';
apps/docs/src/components/layout/notebook/page/client.tsx:import { useFooterItems } from '@fumadocs/base-ui/utils/use-footer-items';
apps/docs/src/components/layout/sidebar/tabs/dropdown.tsx:import { usePathname } from 'fumadocs-core/framework';
apps/docs/scripts/generate-docs.ts:import { generateFiles } from "fumadocs-openapi";
apps/docs/src/components/layout/notebook/client.tsx:import Link from 'fumadocs-core/link';
apps/docs/src/components/layout/notebook/client.tsx:import { usePathname } from 'fumadocs-core/framework';
apps/docs/src/components/layout/notebook/client.tsx:import { useIsScrollTop } from '@fumadocs/base-ui/utils/use-is-scroll-top';
apps/docs/src/components/layout/notebook/index.tsx:import { TreeContextProvider } from '@fumadocs/base-ui/contexts/tree';
apps/docs/src/components/layout/notebook/index.tsx:import type * as PageTree from 'fumadocs-core/page-tree';
apps/docs/src/components/layout/sidebar/page-tree.tsx:import { useTreeContext, useTreePath } from '@fumadocs/base-ui/contexts/tree';
apps/docs/src/components/layout/sidebar/page-tree.tsx:import type * as PageTree from 'fumadocs-core/page-tree';
apps/docs/src/components/ui/button.tsx:      // fumadocs use `color` instead of `variant`
apps/docs/src/components/layout/sidebar/base.tsx:import Link, { type LinkProps } from 'fumadocs-core/link';
apps/docs/src/components/layout/sidebar/base.tsx:import { useOnChange } from 'fumadocs-core/utils/use-on-change';
apps/docs/src/components/layout/sidebar/base.tsx:import { useMediaQuery } from 'fumadocs-core/utils/use-media-query';
apps/docs/src/components/layout/sidebar/base.tsx:import { usePathname } from 'fumadocs-core/framework';
apps/docs/src/components/layout/language-toggle.tsx:import { useI18n } from "@fumadocs/base-ui/contexts/i18n";
apps/eclipse/src/components/layout/notebook/index.tsx:import { TreeContextProvider } from "@fumadocs/base-ui/contexts/tree";
apps/eclipse/src/components/layout/notebook/index.tsx:import type * as PageTree from "fumadocs-core/page-tree";
apps/eclipse/src/components/layout/sidebar/page-tree.tsx:import { useTreeContext, useTreePath } from '@fumadocs/base-ui/contexts/tree';
apps/eclipse/src/components/layout/sidebar/page-tree.tsx:import type * as PageTree from 'fumadocs-core/page-tree';
apps/docs/package.json:    "generate:management-api-docs": "rimraf ./content/docs/management-api/endpoints/**/*.mdx && pnpm run fetch-openapi && tsx ./scripts/generate-docs.ts && fumadocs-mdx",
apps/docs/package.json:    "types:check": "fumadocs-mdx && next typegen && tsc --noEmit",
apps/docs/package.json:    "postinstall": "fumadocs-mdx",
apps/docs/package.json:    "@fumadocs/base-ui": "catalog:",
apps/docs/package.json:    "@fumadocs/cli": "catalog:",
apps/docs/package.json:    "fumadocs-core": "catalog:",
apps/docs/package.json:    "fumadocs-mdx": "catalog:",
apps/docs/package.json:    "fumadocs-openapi": "catalog:",
apps/docs/package.json:    "fumadocs-ui": "catalog:",
apps/eclipse/src/components/layout/sidebar/tabs/dropdown.tsx:import { usePathname } from 'fumadocs-core/framework';
apps/eclipse/src/components/layout/sidebar/tabs/index.tsx:import type * as PageTree from 'fumadocs-core/page-tree';
apps/docs/cspell.json:    "Fumadocs",
apps/eclipse/src/components/layout/link-item.tsx:import { usePathname } from 'fumadocs-core/framework';
apps/eclipse/src/components/layout/link-item.tsx:import Link from 'fumadocs-core/link';
apps/eclipse/src/components/layout/language-toggle.tsx:import { useI18n } from "@fumadocs/base-ui/contexts/i18n";
apps/eclipse/src/components/toc/index.tsx:import * as Primitive from 'fumadocs-core/toc';
apps/eclipse/src/components/toc/index.tsx:import { useOnChange } from 'fumadocs-core/utils/use-on-change';
apps/eclipse/src/components/toc/default.tsx:import { useI18n } from '@fumadocs/base-ui/contexts/i18n';
apps/eclipse/src/components/toc/default.tsx:import * as Primitive from 'fumadocs-core/toc';
apps/docs/src/components/toc/index.tsx:import * as Primitive from 'fumadocs-core/toc';
apps/docs/src/components/toc/index.tsx:import { useOnChange } from 'fumadocs-core/utils/use-on-change';
apps/eclipse/src/components/toc/clerk.tsx:import * as Primitive from 'fumadocs-core/toc';
apps/eclipse/src/components/toc/clerk.tsx:import { useI18n } from '@fumadocs/base-ui/contexts/i18n';
apps/eclipse/src/components/provider.tsx:import { RootProvider } from "fumadocs-ui/provider/next";
apps/eclipse/src/components/provider.tsx:import { NextProvider } from "fumadocs-core/framework/next";
apps/eclipse/src/components/page-actions.tsx:import { useCopyButton } from "fumadocs-ui/utils/use-copy-button";
apps/eclipse/src/components/page-actions.tsx:import { Popover, PopoverContent, PopoverTrigger } from "fumadocs-ui/components/ui/popover";
apps/eclipse/src/components/search.tsx:import { useDocsSearch } from "fumadocs-core/search/client";
apps/eclipse/src/components/search.tsx:} from "fumadocs-ui/components/dialog/search";
apps/eclipse/src/lib/source.ts:import { type InferPageType, loader } from 'fumadocs-core/source';
apps/eclipse/src/lib/source.ts:import { lucideIconsPlugin } from 'fumadocs-core/source/lucide-icons';
apps/eclipse/src/lib/source.ts:// See https://fumadocs.dev/docs/headless/source-api for more info
apps/eclipse/src/lib/source.ts:  source: designSystem.toFumadocsSource(),
apps/eclipse/src/lib/layout.shared.tsx:import type { BaseLayoutProps, LinkItemType } from 'fumadocs-ui/layouts/shared';
apps/eclipse/source.config.ts:} from 'fumadocs-core/mdx-plugins';
apps/eclipse/source.config.ts:import { remarkImage } from 'fumadocs-core/mdx-plugins';
apps/eclipse/source.config.ts:} from 'fumadocs-mdx/config';
apps/eclipse/source.config.ts:import lastModified from 'fumadocs-mdx/plugins/last-modified';
apps/eclipse/source.config.ts:// see https://fumadocs.dev/docs/mdx/collections
apps/eclipse/cli.json:  "$schema": "node_modules/@fumadocs/cli/dist/schema/src.json",
apps/eclipse/src/app/(design-system)/[[...slug]]/page.tsx:import { createRelativeLink } from 'fumadocs-ui/mdx';
apps/blog/package.json:    "types:check": "fumadocs-mdx && next typegen && tsc --noEmit",
apps/blog/package.json:    "postinstall": "fumadocs-mdx",
apps/blog/package.json:    "@fumadocs/cli": "catalog:",
apps/blog/package.json:    "fumadocs-core": "catalog:",
apps/blog/package.json:    "fumadocs-mdx": "catalog:",
apps/blog/package.json:    "fumadocs-openapi": "catalog:",
apps/blog/package.json:    "fumadocs-ui": "catalog:",
apps/blog/package.json:    "@fumadocs/base-ui": "catalog:",
apps/blog/tsconfig.json:      "fumadocs-mdx:collections/*": [".source/*"]
apps/blog/source.config.ts:} from "fumadocs-core/mdx-plugins";
apps/blog/source.config.ts:import { remarkImage } from "fumadocs-core/mdx-plugins";
apps/blog/source.config.ts:} from "fumadocs-mdx/config";
apps/blog/source.config.ts:import lastModified from "fumadocs-mdx/plugins/last-modified";
apps/blog/src/mdx-components.tsx:import defaultMdxComponents from "fumadocs-ui/mdx";
apps/blog/src/mdx-components.tsx:import { ImageZoom } from "fumadocs-ui/components/image-zoom";
apps/blog/src/mdx-components.tsx:    // Fumadocs tabs for manual usage (with items prop)
apps/blog/scripts/lint.ts:import type { InferPageType } from 'fumadocs-core/source';
apps/blog/scripts/lint.ts:register('fumadocs-mdx/node/loader', import.meta.url);
apps/blog/src/components/search.tsx:import { useDocsSearch } from "fumadocs-core/search/client";
apps/blog/src/components/search.tsx:} from "fumadocs-ui/components/dialog/search";
apps/blog/src/components/search-toggle.tsx:import { useSearchContext } from '@fumadocs/base-ui/contexts/search';
apps/blog/src/components/provider.tsx:import { RootProvider } from "fumadocs-ui/provider/next";
apps/blog/src/components/provider.tsx:import { NextProvider } from "fumadocs-core/framework/next";
apps/blog/src/components/CategoryTagFilter.tsx:} from "fumadocs-ui/components/ui/popover";
apps/blog/src/lib/source.tsx:import { type InferPageType, loader, multiple } from "fumadocs-core/source";
apps/blog/src/lib/source.tsx:import { lucideIconsPlugin } from "fumadocs-core/source/lucide-icons";
apps/blog/src/lib/source.tsx:import { toFumadocsSource } from "fumadocs-mdx/runtime/server";
apps/blog/src/lib/source.tsx:  source: toFumadocsSource(blogPosts, []),
apps/blog/src/lib/get-llm-text.ts:import type { InferPageType } from "fumadocs-core/source";
apps/blog/src/app/api/search/route.ts:import { createMixedbreadSearchAPI } from "fumadocs-core/search/mixedbread";
apps/blog/cli.json:  "$schema": "node_modules/@fumadocs/cli/dist/schema/src.json",
apps/blog/src/app/(blog)/[slug]/page.tsx:import { createRelativeLink } from "fumadocs-ui/mdx";

Script executed:

# Search for similar examples of .env or bash code annotations in the docs
rg "\[!code.*\]" -A 2 -B 2 --max-count=20

Repository: prisma/web


Repository: prisma/web
Exit code: 0

stdout:

apps/docs/content/docs.v6/accelerate/api-reference.mdx-  },
apps/docs/content/docs.v6/accelerate/api-reference.mdx-  cacheStrategy: {
apps/docs/content/docs.v6/accelerate/api-reference.mdx:    // [!code highlight]
apps/docs/content/docs.v6/accelerate/api-reference.mdx:    swr: 60, // [!code highlight]
apps/docs/content/docs.v6/accelerate/api-reference.mdx:    ttl: 60, // [!code highlight]
apps/docs/content/docs.v6/accelerate/api-reference.mdx:    tags: ["emails_with_alice"], // [!code highlight]
apps/docs/content/docs.v6/accelerate/api-reference.mdx:  }, // [!code highlight]
apps/docs/content/docs.v6/accelerate/api-reference.mdx-});
apps/docs/content/docs.v6/accelerate/api-reference.mdx-```
--
apps/docs/content/docs.v6/accelerate/api-reference.mdx-    swr: 60,
apps/docs/content/docs.v6/accelerate/api-reference.mdx-    ttl: 60,
apps/docs/content/docs.v6/accelerate/api-reference.mdx:    tags: ["emails_with_alice"], // [!code highlight]
apps/docs/content/docs.v6/accelerate/api-reference.mdx-  },
apps/docs/content/docs.v6/accelerate/api-reference.mdx-});
--
apps/docs/content/docs.v6/accelerate/api-reference.mdx-try {
apps/docs/content/docs.v6/accelerate/api-reference.mdx-  await prisma.$accelerate.invalidate({
apps/docs/content/docs.v6/accelerate/api-reference.mdx:    // [!code highlight]
apps/docs/content/docs.v6/accelerate/api-reference.mdx:    tags: ["emails_with_alice"], // [!code highlight]
apps/docs/content/docs.v6/accelerate/api-reference.mdx:  }); // [!code highlight]
apps/docs/content/docs.v6/accelerate/api-reference.mdx-} catch (e) {
apps/docs/content/docs.v6/accelerate/api-reference.mdx-  if (e instanceof Prisma.PrismaClientKnownRequestError) {
--
apps/docs/content/docs.v6/accelerate/api-reference.mdx-    swr: 60,
apps/docs/content/docs.v6/accelerate/api-reference.mdx-    ttl: 60,
apps/docs/content/docs.v6/accelerate/api-reference.mdx:    tags: ["emails_with_alice"], // [!code highlight]
apps/docs/content/docs.v6/accelerate/api-reference.mdx-  },
apps/docs/content/docs.v6/accelerate/api-reference.mdx-});
--
apps/docs/content/docs.v6/accelerate/api-reference.mdx-```ts
apps/docs/content/docs.v6/accelerate/api-reference.mdx-try {
apps/docs/content/docs.v6/accelerate/api-reference.mdx:  await prisma.$accelerate.invalidateAll(); // [!code highlight]
apps/docs/content/docs.v6/accelerate/api-reference.mdx-} catch (e) {
apps/docs/content/docs.v6/accelerate/api-reference.mdx-  if (e instanceof Prisma.PrismaClientKnownRequestError) {
--
apps/docs/content/docs.v6/accelerate/getting-started.mdx-```bash title=".env"
apps/docs/content/docs.v6/accelerate/getting-started.mdx-DATABASE_URL="prisma://accelerate.prisma-data.net/?api_key=__API_KEY__"
apps/docs/content/docs.v6/accelerate/getting-started.mdx:DIRECT_DATABASE_URL="postgresql://user:password@host:port/db_name?schema=public" # [!code ++]
apps/docs/content/docs.v6/accelerate/getting-started.mdx-```
apps/docs/content/docs.v6/accelerate/getting-started.mdx-
--
apps/docs/content/docs.v6/accelerate/getting-started.mdx-    swr: 60,
apps/docs/content/docs.v6/accelerate/getting-started.mdx-    ttl: 60,
apps/docs/content/docs.v6/accelerate/getting-started.mdx:    tags: ["emails_with_alice"], // [!code highlight]
apps/docs/content/docs.v6/accelerate/getting-started.mdx-  },
apps/docs/content/docs.v6/accelerate/getting-started.mdx-});
--
apps/docs/content/docs.v6/accelerate/getting-started.mdx-try {
apps/docs/content/docs.v6/accelerate/getting-started.mdx-  await prisma.$accelerate.invalidate({
apps/docs/content/docs.v6/accelerate/getting-started.mdx:    // [!code highlight]
apps/docs/content/docs.v6/accelerate/getting-started.mdx:    tags: ["emails_with_alice"], // [!code highlight]
apps/docs/content/docs.v6/accelerate/getting-started.mdx:  }); // [!code highlight]
apps/docs/content/docs.v6/accelerate/getting-started.mdx-} catch (e) {
apps/docs/content/docs.v6/accelerate/getting-started.mdx-  if (e instanceof Prisma.PrismaClientKnownRequestError) {
--
apps/docs/content/docs/(index)/prisma-postgres/import-from-existing-database-mysql.mdx-```prisma title="schema.prisma"
apps/docs/content/docs/(index)/prisma-postgres/import-from-existing-database-mysql.mdx-datasource db {
apps/docs/content/docs/(index)/prisma-postgres/import-from-existing-database-mysql.mdx:  provider = "mysql" // [!code --]
apps/docs/content/docs/(index)/prisma-postgres/import-from-existing-database-mysql.mdx:  provider = "postgres" // [!code ++]
apps/docs/content/docs/(index)/prisma-postgres/import-from-existing-database-mysql.mdx-}
apps/docs/content/docs/(index)/prisma-postgres/import-from-existing-database-mysql.mdx-```
--
apps/docs/content/docs/(index)/prisma-postgres/from-the-cli.mdx-```json title="package.json"
apps/docs/content/docs/(index)/prisma-postgres/from-the-cli.mdx-{
apps/docs/content/docs/(index)/prisma-postgres/from-the-cli.mdx:  "type": "module" // [!code ++]
apps/docs/content/docs/(index)/prisma-postgres/from-the-cli.mdx-}
apps/docs/content/docs/(index)/prisma-postgres/from-the-cli.mdx-```
--
apps/docs/content/docs/(index)/prisma-postgres/from-the-cli.mdx-async function main() {
apps/docs/content/docs/(index)/prisma-postgres/from-the-cli.mdx-  const user = await prisma.user.create({
apps/docs/content/docs/(index)/prisma-postgres/from-the-cli.mdx:    // [!code ++]
apps/docs/content/docs/(index)/prisma-postgres/from-the-cli.mdx-    data: {
apps/docs/content/docs/(index)/prisma-postgres/from-the-cli.mdx:      // [!code ++]
apps/docs/content/docs/(index)/prisma-postgres/from-the-cli.mdx:      name: "Alice", // [!code ++]
apps/docs/content/docs/(index)/prisma-postgres/from-the-cli.mdx:      email: "alice@prisma.io", // [!code ++]
apps/docs/content/docs/(index)/prisma-postgres/from-the-cli.mdx:    }, // [!code ++]
apps/docs/content/docs/(index)/prisma-postgres/from-the-cli.mdx:  }); // [!code ++]
apps/docs/content/docs/(index)/prisma-postgres/from-the-cli.mdx:  console.log(user); // [!code ++]
apps/docs/content/docs/(index)/prisma-postgres/from-the-cli.mdx-}
apps/docs/content/docs/(index)/prisma-postgres/from-the-cli.mdx-
--
apps/docs/content/docs/(index)/prisma-postgres/from-the-cli.mdx-
apps/docs/content/docs/(index)/prisma-postgres/from-the-cli.mdx-async function main() {
apps/docs/content/docs/(index)/prisma-postgres/from-the-cli.mdx:  const users = await prisma.user.findMany(); // [!code ++]
apps/docs/content/docs/(index)/prisma-postgres/from-the-cli.mdx:  console.log(users); // [!code ++]
apps/docs/content/docs/(index)/prisma-postgres/from-the-cli.mdx-}
apps/docs/content/docs/(index)/prisma-postgres/from-the-cli.mdx-
--
apps/docs/content/docs/(index)/prisma-postgres/from-the-cli.mdx-async function main() {
apps/docs/content/docs/(index)/prisma-postgres/from-the-cli.mdx-  const user = await prisma.user.create({
apps/docs/content/docs/(index)/prisma-postgres/from-the-cli.mdx:    // [!code ++]
apps/docs/content/docs/(index)/prisma-postgres/from-the-cli.mdx-    data: {
apps/docs/content/docs/(index)/prisma-postgres/from-the-cli.mdx:      // [!code ++]
apps/docs/content/docs/(index)/prisma-postgres/from-the-cli.mdx:      name: "Bob", // [!code ++]
apps/docs/content/docs/(index)/prisma-postgres/from-the-cli.mdx:      email: "bob@prisma.io", // [!code ++]
apps/docs/content/docs/(index)/prisma-postgres/from-the-cli.mdx-      posts: {
apps/docs/content/docs/(index)/prisma-postgres/from-the-cli.mdx:        // [!code ++]
apps/docs/content/docs/(index)/prisma-postgres/from-the-cli.mdx-        create: [
apps/docs/content/docs/(index)/prisma-postgres/from-the-cli.mdx:          // [!code ++]
apps/docs/content/docs/(index)/prisma-postgres/from-the-cli.mdx-          {
apps/docs/content/docs/(index)/prisma-postgres/from-the-cli.mdx:            // [!code ++]
apps/docs/content/docs/(index)/prisma-postgres/from-the-cli.mdx:            title: "Hello World", // [!code ++]
apps/docs/content/docs/(index)/prisma-postgres/from-the-cli.mdx:            published: true, // [!code ++]
apps/docs/content/docs/(index)/prisma-postgres/from-the-cli.mdx:          }, // [!code ++]
apps/docs/content/docs/(index)/prisma-postgres/from-the-cli.mdx-          {
apps/docs/content/docs/(index)/prisma-postgres/from-the-cli.mdx:            // [!code ++]
--
apps/docs/content/docs/(index)/prisma-orm/quickstart/sql-server.mdx-```json title="package.json"
apps/docs/content/docs/(index)/prisma-orm/quickstart/sql-server.mdx-{
apps/docs/content/docs/(index)/prisma-orm/quickstart/sql-server.mdx:  "type": "module" // [!code ++]
apps/docs/content/docs/(index)/prisma-orm/quickstart/sql-server.mdx-}
apps/docs/content/docs/(index)/prisma-orm/quickstart/sql-server.mdx-```
--
apps/docs/content/docs/(index)/prisma-orm/quickstart/sql-server.mdx-```bash title=".env"
apps/docs/content/docs/(index)/prisma-orm/quickstart/sql-server.mdx-DATABASE_URL="sqlserver://localhost:1433;database=mydb;user=username;password=password;encrypt=true"
apps/docs/content/docs/(index)/prisma-orm/quickstart/sql-server.mdx:DB_USER="username" # [!code ++]
apps/docs/content/docs/(index)/prisma-orm/quickstart/sql-server.mdx:DB_PASSWORD="password" # [!code ++]
apps/docs/content/docs/(index)/prisma-orm/quickstart/sql-server.mdx:DB_NAME="mydb" # [!code ++]
apps/docs/content/docs/(index)/prisma-orm/quickstart/sql-server.mdx:HOST="localhost" # [!code ++]
apps/docs/content/docs/(index)/prisma-orm/quickstart/sql-server.mdx-```
apps/docs/content/docs/(index)/prisma-orm/quickstart/sql-server.mdx-
--
apps/docs/content/docs/(index)/prisma-orm/quickstart/sql-server.mdx-}
apps/docs/content/docs/(index)/prisma-orm/quickstart/sql-server.mdx-
apps/docs/content/docs/(index)/prisma-orm/quickstart/sql-server.mdx:model User { // [!code ++]
apps/docs/content/docs/(index)/prisma-orm/quickstart/sql-server.mdx:  id    Int     `@id` `@default`(autoincrement()) // [!code ++]
apps/docs/content/docs/(index)/prisma-orm/quickstart/sql-server.mdx:  email String  `@unique` // [!code ++]
apps/docs/content/docs/(index)/prisma-orm/quickstart/sql-server.mdx:  name  String? // [!code ++]
apps/docs/content/docs/(index)/prisma-orm/quickstart/sql-server.mdx:  posts Post[] // [!code ++]
apps/docs/content/docs/(index)/prisma-orm/quickstart/sql-server.mdx:} // [!code ++]
apps/docs/content/docs/(index)/prisma-orm/quickstart/sql-server.mdx-
apps/docs/content/docs/(index)/prisma-orm/quickstart/sql-server.mdx:model Post { // [!code ++]
apps/docs/content/docs/(index)/prisma-orm/quickstart/sql-server.mdx:  id        Int     `@id` `@default`(autoincrement()) // [!code ++]
apps/docs/content/docs/(index)/prisma-orm/quickstart/sql-server.mdx:  title     String // [!code ++]
apps/docs/content/docs/(index)/prisma-orm/quickstart/sql-server.mdx:  content   String? // [!code ++]
apps/docs/content/docs/(index)/prisma-orm/quickstart/sql-server.mdx:  published Boolean `@default`(false) // [!code ++]
apps/docs/content/docs/(index)/prisma-orm/quickstart/sql-server.mdx:  author    User    `@relation`(fields: [authorId], references: [id]) // [!code ++]
apps/docs/content/docs/(index)/prisma-orm/quickstart/sql-server.mdx:  authorId  Int // [!code ++]
apps/docs/content/docs/(index)/prisma-orm/quickstart/sql-server.mdx:} // [!code ++]
apps/docs/content/docs/(index)/prisma-orm/quickstart/sql-server.mdx-```
apps/docs/content/docs/(index)/prisma-orm/quickstart/sql-server.mdx-
--
apps/docs/content/docs/(index)/prisma-orm/add-to-existing-project/sqlite.mdx-
apps/docs/content/docs/(index)/prisma-orm/add-to-existing-project/sqlite.mdx-```prisma title="prisma/schema.prisma"
apps/docs/content/docs/(index)/prisma-orm/add-to-existing-project/sqlite.mdx:model Post { // [!code ++]
apps/docs/content/docs/(index)/prisma-orm/add-to-existing-project/sqlite.mdx:  id        Int      `@id` `@default`(autoincrement()) // [!code ++]
apps/docs/content/docs/(index)/prisma-orm/add-to-existing-project/sqlite.mdx:  title     String // [!code ++]
apps/docs/content/docs/(index)/prisma-orm/add-to-existing-project/sqlite.mdx:  content   String? // [!code ++]
apps/docs/content/docs/(index)/prisma-orm/add-to-existing-project/sqlite.mdx:  published Boolean  `@default`(false) // [!code ++]
apps/docs/content/docs/(index)/prisma-orm/add-to-existing-project/sqlite.mdx:  authorId  Int // [!code ++]
apps/docs/content/docs/(index)/prisma-orm/add-to-existing-project/sqlite.mdx:  author    User     `@relation`(fields: [authorId], references: [id]) // [!code ++]
apps/docs/content/docs/(index)/prisma-orm/add-to-existing-project/sqlite.mdx:} // [!code ++]
apps/docs/content/docs/(index)/prisma-orm/add-to-existing-project/sqlite.mdx-
apps/docs/content/docs/(index)/prisma-orm/add-to-existing-project/sqlite.mdx:model User { // [!code ++]
apps/docs/content/docs/(index)/prisma-orm/add-to-existing-project/sqlite.mdx:  id    Int    `@id` `@default`(autoincrement()) // [!code ++]
apps/docs/content/docs/(index)/prisma-orm/add-to-existing-project/sqlite.mdx:  email String `@unique` // [!code ++]
apps/docs/content/docs/(index)/prisma-orm/add-to-existing-project/sqlite.mdx:  name  String? // [!code ++]
apps/docs/content/docs/(index)/prisma-orm/add-to-existing-project/sqlite.mdx:  posts Post[] // [!code ++]
apps/docs/content/docs/(index)/prisma-orm/add-to-existing-project/sqlite.mdx:} // [!code ++]
apps/docs/content/docs/(index)/prisma-orm/add-to-existing-project/sqlite.mdx-```
apps/docs/content/docs/(index)/prisma-orm/add-to-existing-project/sqlite.mdx-
--
apps/docs/content/docs/(index)/prisma-postgres/quickstart/prisma-orm.mdx-```json title="package.json"
apps/docs/content/docs/(index)/prisma-postgres/quickstart/prisma-orm.mdx-{
apps/docs/content/docs/(index)/prisma-postgres/quickstart/prisma-orm.mdx:  "type": "module" // [!code ++]
apps/docs/content/docs/(index)/prisma-postgres/quickstart/prisma-orm.mdx-}
apps/docs/content/docs/(index)/prisma-postgres/quickstart/prisma-orm.mdx-```
--
apps/docs/content/docs/(index)/prisma-postgres/quickstart/prisma-orm.mdx-}
apps/docs/content/docs/(index)/prisma-postgres/quickstart/prisma-orm.mdx-
apps/docs/content/docs/(index)/prisma-postgres/quickstart/prisma-orm.mdx:model User { // [!code ++]
apps/docs/content/docs/(index)/prisma-postgres/quickstart/prisma-orm.mdx:  id    Int     `@id` `@default`(autoincrement()) // [!code ++]
apps/docs/content/docs/(index)/prisma-postgres/quickstart/prisma-orm.mdx:  email String  `@unique` // [!code ++]
apps/docs/content/docs/(index)/prisma-postgres/quickstart/prisma-orm.mdx:  name  String? // [!code ++]
apps/docs/content/docs/(index)/prisma-postgres/quickstart/prisma-orm.mdx:  posts Post[] // [!code ++]
apps/docs/content/docs/(index)/prisma-postgres/quickstart/prisma-orm.mdx:} // [!code ++]
apps/docs/content/docs/(index)/prisma-postgres/quickstart/prisma-orm.mdx-
apps/docs/content/docs/(index)/prisma-postgres/quickstart/prisma-orm.mdx:model Post { // [!code ++]
apps/docs/content/docs/(index)/prisma-postgres/quickstart/prisma-orm.mdx:  id        Int     `@id` `@default`(autoincrement()) // [!code ++]
apps/docs/content/docs/(index)/prisma-postgres/quickstart/prisma-orm.mdx:  title     String // [!code ++]
apps/docs/content/docs/(index)/prisma-postgres/quickstart/prisma-orm.mdx:  content   String? // [!code ++]
apps/docs/content/docs/(index)/prisma-postgres/quickstart/prisma-orm.mdx:  published Boolean `@default`(false) // [!code ++]
apps/docs/content/docs/(index)/prisma-postgres/quickstart/prisma-orm.mdx:  author    User    `@relation`(fields: [authorId], references: [id]) // [!code ++]
apps/docs/content/docs/(index)/prisma-postgres/quickstart/prisma-orm.mdx:  authorId  Int // [!code ++]
apps/docs/content/docs/(index)/prisma-postgres/quickstart/prisma-orm.mdx:} // [!code ++]
apps/docs/content/docs/(index)/prisma-postgres/quickstart/prisma-orm.mdx-```
apps/docs/content/docs/(index)/prisma-postgres/quickstart/prisma-orm.mdx-
--
apps/docs/content/docs/(index)/prisma-orm/quickstart/postgresql.mdx-```json title="package.json"
apps/docs/content/docs/(index)/prisma-orm/quickstart/postgresql.mdx-{
apps/docs/content/docs/(index)/prisma-orm/quickstart/postgresql.mdx:  "type": "module" // [!code ++]
apps/docs/content/docs/(index)/prisma-orm/quickstart/postgresql.mdx-}
apps/docs/content/docs/(index)/prisma-orm/quickstart/postgresql.mdx-```
--
apps/docs/content/docs/(index)/prisma-orm/quickstart/postgresql.mdx-}
apps/docs/content/docs/(index)/prisma-orm/quickstart/postgresql.mdx-
apps/docs/content/docs/(index)/prisma-orm/quickstart/postgresql.mdx:model User { // [!code ++]
apps/docs/content/docs/(index)/prisma-orm/quickstart/postgresql.mdx:  id    Int     `@id` `@default`(autoincrement()) // [!code ++]
apps/docs/content/docs/(index)/prisma-orm/quickstart/postgresql.mdx:  email String  `@unique` // [!code ++]
apps/docs/content/docs/(index)/prisma-orm/quickstart/postgresql.mdx:  name  String? // [!code ++]
apps/docs/content/docs/(index)/prisma-orm/quickstart/postgresql.mdx:  posts Post[] // [!code ++]
apps/docs/content/docs/(index)/prisma-orm/quickstart/postgresql.mdx:} // [!code ++]
apps/docs/content/docs/(index)/prisma-orm/quickstart/postgresql.mdx-
apps/docs/content/docs/(index)/prisma-orm/quickstart/postgresql.mdx:model Post { // [!code ++]
apps/docs/content/docs/(index)/prisma-orm/quickstart/postgresql.mdx:  id        Int     `@id` `@default`(autoincrement()) // [!code ++]
apps/docs/content/docs/(index)/prisma-orm/quickstart/postgresql.mdx:  title     String // [!code ++]
apps/docs/content/docs/(index)/prisma-orm/quickstart/postgresql.mdx:  content   String? // [!code ++]
apps/docs/content/docs/(index)/prisma-orm/quickstart/postgresql.mdx:  published Boolean `@default`(false) // [!code ++]
apps/docs/content/docs/(index)/prisma-orm/quickstart/postgresql.mdx:  author    User    `@relation`(fields: [authorId], references: [id]) // [!code ++]
apps/docs/content/docs/(index)/prisma-orm/quickstart/postgresql.mdx:  authorId  Int // [!code ++]
apps/docs/content/docs/(index)/prisma-orm/quickstart/postgresql.mdx:} // [!code ++]
apps/docs/content/docs/(index)/prisma-orm/quickstart/postgresql.mdx-```
apps/docs/content/docs/(index)/prisma-orm/quickstart/postgresql.mdx-
--
apps/docs/content/docs/(index)/prisma-orm/add-to-existing-project/sql-server.mdx-```bash title=".env"
apps/docs/content/docs/(index)/prisma-orm/add-to-existing-project/sql-server.mdx-DATABASE_URL="sqlserver://localhost:1433;database=mydb;user=username;password=password;encrypt=true"
apps/docs/content/docs/(index)/prisma-orm/add-to-existing-project/sql-server.mdx:DB_USER="username" # [!code ++]
apps/docs/content/docs/(index)/prisma-orm/add-to-existing-project/sql-server.mdx:DB_PASSWORD="password" # [!code ++]
apps/docs/content/docs/(index)/prisma-orm/add-to-existing-project/sql-server.mdx:DB_NAME="mydb" # [!code ++]
apps/docs/content/docs/(index)/prisma-orm/add-to-existing-project/sql-server.mdx:HOST="localhost" # [!code ++]
apps/docs/content/docs/(index)/prisma-orm/add-to-existing-project/sql-server.mdx-```
apps/docs/content/docs/(index)/prisma-orm/add-to-existing-project/sql-server.mdx-
--
apps/docs/content/docs/(index)/prisma-orm/add-to-existing-project/sql-server.mdx-
apps/docs/content/docs/(index)/prisma-orm/add-to-existing-project/sql-server.mdx-```prisma title="prisma/schema.prisma"
apps/docs/content/docs/(index)/prisma-orm/add-to-existing-project/sql-server.mdx:model Post { // [!code ++]
apps/docs/content/docs/(index)/prisma-orm/add-to-existing-project/sql-server.mdx:  id        Int      `@id` `@default`(autoincrement()) // [!code ++]
apps/docs/content/docs/(index)/prisma-orm/add-to-existing-project/sql-server.mdx:  title     String // [!code ++]
apps/docs/content/docs/(index)/prisma-orm/add-to-existing-project/sql-server.mdx:  content   String? // [!code ++]
apps/docs/content/docs/(index)/prisma-orm/add-to-existing-project/sql-server.mdx:  published Boolean  `@default`(false) // [!code ++]
apps/docs/content/docs/(index)/prisma-orm/add-to-existing-project/sql-server.mdx:  authorId  Int // [!code ++]
apps/docs/content/docs/(index)/prisma-orm/add-to-existing-project/sql-server.mdx:  author    User     `@relation`(fields: [authorId], references: [id]) // [!code ++]
apps/docs/content/docs/(index)/prisma-orm/add-to-existing-project/sql-server.mdx:} // [!code ++]
apps/docs/content/docs/(index)/prisma-orm/add-to-existing-project/sql-server.mdx-
apps/docs/content/docs/(index)/prisma-orm/add-to-existing-project/sql-server.mdx:model User { // [!code ++]
apps/docs/content/docs/(index)/prisma-orm/add-to-existing-project/sql-server.mdx:  id    Int    `@id` `@default`(autoincrement()) // [!code ++]
apps/docs/content/docs/(index)/prisma-orm/add-to-existing-project/sql-server.mdx:  email String `@unique` // [!code ++]
apps/docs/content/docs/(index)/prisma-orm/add-to-existing-project/sql-server.mdx:  name  String? // [!code ++]
apps/docs/content/docs/(index)/prisma-orm/add-to-existing-project/sql-server.mdx:  posts Post[] // [!code ++]
apps/docs/content/docs/(index)/prisma-orm/add-to-existing-project/sql-server.mdx:} // [!code ++]
apps/docs/content/docs/(index)/prisma-orm/add-to-existing-project/sql-server.mdx-```
apps/docs/content/docs/(index)/prisma-orm/add-to-existing-project/sql-server.mdx-
--
apps/docs/content/docs/(index)/prisma-orm/quickstart/planetscale.mdx-```json title="package.json"
apps/docs/content/docs/(index)/prisma-orm/quickstart/planetscale.mdx-{
apps/docs/content/docs/(index)/prisma-orm/quickstart/planetscale.mdx:  "type": "module" // [!code ++]
apps/docs/content/docs/(index)/prisma-orm/quickstart/planetscale.mdx-}
apps/docs/content/docs/(index)/prisma-orm/quickstart/planetscale.mdx-```
--
apps/docs/content/docs/(index)/prisma-orm/quickstart/planetscale.mdx-}
apps/docs/content/docs/(index)/prisma-orm/quickstart/planetscale.mdx-
apps/docs/content/docs/(index)/prisma-orm/quickstart/planetscale.mdx:model User { // [!code ++]
apps/docs/content/docs/(index)/prisma-orm/quickstart/planetscale.mdx:  id    Int     `@id` `@default`(autoincrement()) // [!code ++]
apps/docs/content/docs/(index)/prisma-orm/quickstart/planetscale.mdx:  email String  `@unique` // [!code ++]
apps/docs/content/docs/(index)/prisma-orm/quickstart/planetscale.mdx:  name  String? // [!code ++]
apps/docs/content/docs/(index)/prisma-orm/quickstart/planetscale.mdx:  posts Post[] // [!code ++]
apps/docs/content/docs/(index)/prisma-orm/quickstart/planetscale.mdx:} // [!code ++]
apps/docs/content/docs/(index)/prisma-orm/quickstart/planetscale.mdx-
apps/docs/content/docs/(index)/prisma-orm/quickstart/planetscale.mdx:model Post { // [!code ++]
apps/docs/content/docs/(index)/prisma-orm/quickstart/planetscale.mdx:  id        Int     `@id` `@default`(autoincrement()) // [!code ++]
apps/docs/content/docs/(index)/prisma-orm/quickstart/planetscale.mdx:  title     String // [!code ++]
apps/docs/content/docs/(index)/prisma-orm/quickstart/planetscale.mdx:  content   String? `@db.Text` // [!code ++]
apps/docs/content/docs/(index)/prisma-orm/quickstart/planetscale.mdx:  published Boolean `@default`(false) // [!code ++]
apps/docs/content/docs/(index)/prisma-orm/quickstart/planetscale.mdx:  author    User    `@relation`(fields: [authorId], references: [id]) // [!code ++]
apps/docs/content/docs/(index)/prisma-orm/quickstart/planetscale.mdx:  authorId  Int // [!code ++]
apps/docs/content/docs/(index)/prisma-orm/quickstart/planetscale.mdx-
apps/docs/content/docs/(index)/prisma-orm/quickstart/planetscale.mdx:  @@index([authorId]) // [!code ++]
apps/docs/content/docs/(index)/prisma-orm/quickstart/planetscale.mdx:} // [!code ++]
apps/docs/content/docs/(index)/prisma-orm/quickstart/planetscale.mdx-```
apps/docs/content/docs/(index)/prisma-orm/quickstart/planetscale.mdx-
--
apps/docs/content/docs/(index)/prisma-orm/quickstart/planetscale.mdx-}
apps/docs/content/docs/(index)/prisma-orm/quickstart/planetscale.mdx-
apps/docs/content/docs/(index)/prisma-orm/quickstart/planetscale.mdx:model User { // [!code ++]
apps/docs/content/docs/(index)/prisma-orm/quickstart/planetscale.mdx:  id    Int     `@id` `@default`(autoincrement()) // [!code ++]
apps/docs/content/docs/(index)/prisma-orm/quickstart/planetscale.mdx:  email String  `@unique` // [!code ++]
apps/docs/content/docs/(index)/prisma-orm/quickstart/planetscale.mdx:  name  String? // [!code ++]
apps/docs/content/docs/(index)/prisma-orm/quickstart/planetscale.mdx:  posts Post[] // [!code ++]
apps/docs/content/docs/(index)/prisma-orm/quickstart/planetscale.mdx:} // [!code ++]
--
apps/docs/content/docs/(index)/prisma-orm/add-to-existing-project/prisma-postgres.mdx-
apps/docs/content/docs/(index)/prisma-orm/add-to-existing-project/prisma-postgres.mdx-```prisma title="prisma/schema.prisma"
apps/docs/content/docs/(index)/prisma-orm/add-to-existing-project/prisma-postgres.mdx:model Post { // [!code ++]
apps/docs/content/docs/(index)/prisma-orm/add-to-existing-project/prisma-postgres.mdx:  id        Int      `@id` `@default`(autoincrement()) // [!code ++]
apps/docs/content/docs/(index)/prisma-orm/add-to-existing-project/prisma-postgres.mdx:  title     String // [!code ++]
apps/docs/content/docs/(index)/prisma-orm/add-to-existing-project/prisma-postgres.mdx:  content   String? // [!code ++]
apps/docs/content/docs/(index)/prisma-orm/add-to-existing-project/prisma-postgres.mdx:  published Boolean  `@default`(false) // [!code ++]
apps/docs/content/docs/(index)/prisma-orm/add-to-existing-project/prisma-postgres.mdx:  authorId  Int // [!code ++]
apps/docs/content/docs/(index)/prisma-orm/add-to-existing-project/prisma-postgres.mdx:  author    User     `@relation`(fields: [authorId], references: [id]) // [!code ++]
apps/docs/content/docs/(index)/prisma-orm/add-to-existing-project/prisma-postgres.mdx:} // [!code ++]
apps/docs/content/docs/(index)/prisma-orm/add-to-existing-project/prisma-postgres.mdx-
apps/docs/content/docs/(index)/prisma-orm/add-to-existing-project/prisma-postgres.mdx:model User { // [!code ++]
apps/docs/content/docs/(index)/prisma-orm/add-to-existing-project/prisma-postgres.mdx:  id    Int    `@id` `@default`(autoincrement()) // [!code ++]
apps/docs/content/docs/(index)/prisma-orm/add-to-existing-project/prisma-postgres.mdx:  email String `@unique` // [!code ++]
apps/docs/content/docs/(index)/prisma-orm/add-to-existing-project/prisma-postgres.mdx:  name  String? // [!code ++]
apps/docs/content/docs/(index)/prisma-orm/add-to-existing-project/prisma-postgres.mdx:  posts Post[] // [!code ++]
apps/docs/content/docs/(index)/prisma-orm/add-to-existing-project/prisma-postgres.mdx:} // [!code ++]
apps/docs/content/docs/(index)/prisma-orm/add-to-existing-project/prisma-postgres.mdx-```
apps/docs/content/docs/(index)/prisma-orm/add-to-existing-project/prisma-postgres.mdx-
--
apps/docs/content/docs/(index)/prisma-orm/add-to-existing-project/postgresql.mdx-
apps/docs/content/docs/(index)/prisma-orm/add-to-existing-project/postgresql.mdx-```prisma title="prisma/schema.prisma"
apps/docs/content/docs/(index)/prisma-orm/add-to-existing-project/postgresql.mdx:model Post { // [!code ++]
apps/docs/content/docs/(index)/prisma-orm/add-to-existing-project/postgresql.mdx:  id        Int      `@id` `@default`(autoincrement()) // [!code ++]
apps/docs/content/docs/(index)/prisma-orm/add-to-existing-project/postgresql.mdx:  title     String // [!code ++]
apps/docs/content/docs/(index)/prisma-orm/add-to-existing-project/postgresql.mdx:  content   String? // [!code ++]
apps/docs/content/docs/(index)/prisma-orm/add-to-existing-project/postgresql.mdx:  published Boolean  `@default`(false) // [!code ++]
apps/docs/content/docs/(index)/prisma-orm/add-to-existing-project/postgresql.mdx:  authorId  Int // [!code ++]
apps/docs/content/docs/(index)/prisma-orm/add-to-existing-project/postgresql.mdx:  author    User     `@relation`(fields: [authorId], references: [id]) // [!code ++]
apps/docs/content/docs/(index)/prisma-orm/add-to-existing-project/postgresql.mdx:} // [!code ++]
apps/docs/content/docs/(index)/prisma-orm/add-to-existing-project/postgresql.mdx-
apps/docs/content/docs/(index)/prisma-orm/add-to-existing-project/postgresql.mdx:model User { // [!code ++]
apps/docs/content/docs/(index)/prisma-orm/add-to-existing-project/postgresql.mdx:  id    Int    `@id` `@default`(autoincrement()) // [!code ++]
apps/docs/content/docs/(index)/prisma-orm/add-to-existing-project/postgresql.mdx:  email String `@unique` // [!code ++]
apps/docs/content/docs/(index)/prisma-orm/add-to-existing-project/postgresql.mdx:  name  String? // [!code ++]
apps/docs/content/docs/(index)/prisma-orm/add-to-existing-project/postgresql.mdx:  posts Post[] // [!code ++]
apps/docs/content/docs/(index)/prisma-orm/add-to-existing-project/postgresql.mdx:} // [!code ++]
apps/docs/content/docs/(index)/prisma-orm/add-to-existing-project/postgresql.mdx-```
apps/docs/content/docs/(index)/prisma-orm/add-to-existing-project/postgresql.mdx-
--
apps/docs/content/docs/(index)/prisma-orm/quickstart/mongodb.mdx-```json title="package.json"
apps/docs/content/docs/(index)/prisma-orm/quickstart/mongodb.mdx-{
apps/docs/content/docs/(index)/prisma-orm/quickstart/mongodb.mdx:  "type": "module" // [!code ++]
apps/docs/content/docs/(index)/prisma-orm/quickstart/mongodb.mdx-}
apps/docs/content/docs/(index)/prisma-orm/quickstart/mongodb.mdx-```
--
apps/docs/content/docs/(index)/prisma-orm/quickstart/mongodb.mdx-
apps/docs/content/docs/(index)/prisma-orm/quickstart/mongodb.mdx-```typescript title="prisma.config.ts"
apps/docs/content/docs/(index)/prisma-orm/quickstart/mongodb.mdx:import "dotenv/config"; // [!code ++]
apps/docs/content/docs/(index)/prisma-orm/quickstart/mongodb.mdx-import { defineConfig, env } from "prisma/config";
apps/docs/content/docs/(index)/prisma-orm/quickstart/mongodb.mdx-
--
apps/docs/content/docs/(index)/prisma-orm/quickstart/mongodb.mdx-}
apps/docs/content/docs/(index)/prisma-orm/quickstart/mongodb.mdx-
apps/docs/content/docs/(index)/prisma-orm/quickstart/mongodb.mdx:model User { // [!code ++]
apps/docs/content/docs/(index)/prisma-orm/quickstart/mongodb.mdx:  id    String  `@id` `@default`(auto()) `@map`("_id") `@db.ObjectId` // [!code ++]
apps/docs/content/docs/(index)/prisma-orm/quickstart/mongodb.mdx:  email String  `@unique` // [!code ++]
apps/docs/content/docs/(index)/prisma-orm/quickstart/mongodb.mdx:  name  String? // [!code ++]
apps/docs/content/docs/(index)/prisma-orm/quickstart/mongodb.mdx:  posts Post[] // [!code ++]
apps/docs/content/docs/(index)/prisma-orm/quickstart/mongodb.mdx:} // [!code ++]
apps/docs/content/docs/(index)/prisma-orm/quickstart/mongodb.mdx-
apps/docs/content/docs/(index)/prisma-orm/quickstart/mongodb.mdx:model Post { // [!code ++]
apps/docs/content/docs/(index)/prisma-orm/quickstart/mongodb.mdx:  id        String  `@id` `@default`(auto()) `@map`("_id") `@db.ObjectId` // [!code ++]
apps/docs/content/docs/(index)/prisma-orm/quickstart/mongodb.mdx:  title     String // [!code ++]
apps/docs/content/docs/(index)/prisma-orm/quickstart/mongodb.mdx:  content   String? // [!code ++]
apps/docs/content/docs/(index)/prisma-orm/quickstart/mongodb.mdx:  published Boolean `@default`(false) // [!code ++]
apps/docs/content/docs/(index)/prisma-orm/quickstart/mongodb.mdx:  author    User    `@relation`(fields: [authorId], references: [id]) // [!code ++]
apps/docs/content/docs/(index)/prisma-orm/quickstart/mongodb.mdx:  authorId  String  `@db.ObjectId` // [!code ++]
apps/docs/content/docs/(index)/prisma-orm/quickstart/mongodb.mdx:} // [!code ++]
apps/docs/content/docs/(index)/prisma-orm/quickstart/mongodb.mdx-```
apps/docs/content/docs/(index)/prisma-orm/quickstart/mongodb.mdx-
--
apps/docs/content/docs/(index)/prisma-orm/quickstart/mysql.mdx-```json title="package.json"
apps/docs/content/docs/(index)/prisma-orm/quickstart/mysql.mdx-{
apps/docs/content/docs/(index)/prisma-orm/quickstart/mysql.mdx:  "type": "module" // [!code ++]
apps/docs/content/docs/(index)/prisma-orm/quickstart/mysql.mdx-}
apps/docs/content/docs/(index)/prisma-orm/quickstart/mysql.mdx-```
--
apps/docs/content/docs/(index)/prisma-orm/quickstart/mysql.mdx-```bash title=".env"
apps/docs/content/docs/(index)/prisma-orm/quickstart/mysql.mdx-DATABASE_URL="mysql://username:password@localhost:3306/mydb"
apps/docs/content/docs/(index)/prisma-orm/quickstart/mysql.mdx:DATABASE_USER="username" # [!code ++]
apps/docs/content/docs/(index)/prisma-orm/quickstart/mysql.mdx:DATABASE_PASSWORD="password" # [!code ++]
apps/docs/content/docs/(index)/prisma-orm/quickstart/mysql.mdx:DATABASE_NAME="mydb" # [!code ++]
apps/docs/content/docs/(index)/prisma-orm/quickstart/mysql.mdx:DATABASE_HOST="localhost" # [!code ++]
apps/docs/content/docs/(index)/prisma-orm/quickstart/mysql.mdx:DATABASE_PORT=3306 # [!code ++]
apps/docs/content/docs/(index)/prisma-orm/quickstart/mysql.mdx-```
apps/docs/content/docs/(index)/prisma-orm/quickstart/mysql.mdx-
--
apps/docs/content/docs/(index)/prisma-orm/quickstart/mysql.mdx-}
apps/docs/content/docs/(index)/prisma-orm/quickstart/mysql.mdx-
apps/docs/content/docs/(index)/prisma-orm/quickstart/mysql.mdx:model User { // [!code ++]
apps/docs/content/docs/(index)/prisma-orm/quickstart/mysql.mdx:  id    Int     `@id` `@default`(autoincrement()) // [!code ++]
apps/docs/content/docs/(index)/prisma-orm/quickstart/mysql.mdx:  email String  `@unique` // [!code ++]
apps/docs/content/docs/(index)/prisma-orm/quickstart/mysql.mdx:  name  String? // [!code ++]
apps/docs/content/docs/(index)/prisma-orm/quickstart/mysql.mdx:  posts Post[] // [!code ++]
apps/docs/content/docs/(index)/prisma-orm/quickstart/mysql.mdx:} // [!code ++]
apps/docs/content/docs/(index)/prisma-orm/quickstart/mysql.mdx-
apps/docs/content/docs/(index)/prisma-orm/quickstart/mysql.mdx:model Post { // [!code ++]
apps/docs/content/docs/(index)/prisma-orm/quickstart/mysql.mdx:  id        Int     `@id` `@default`(autoincrement()) // [!code ++]
apps/docs/content/docs/(index)/prisma-orm/quickstart/mysql.mdx:  title     String // [!code ++]
apps/docs/content/docs/(index)/prisma-orm/quickstart/mysql.mdx:  content   String? `@db.Text` // [!code ++]
apps/docs/content/docs/(index)/prisma-orm/quickstart/mysql.mdx:  published Boolean `@default`(false) // [!code ++]
apps/docs/content/docs/(index)/prisma-orm/quickstart/mysql.mdx:  author    User    `@relation`(fields: [authorId], references: [id]) // [!code ++]
apps/docs/content/docs/(index)/prisma-orm/quickstart/mysql.mdx:  authorId  Int // [!code ++]
apps/docs/content/docs/(index)/prisma-orm/quickstart/mysql.mdx:} // [!code ++]
apps/docs/content/docs/(index)/prisma-orm/quickstart/mysql.mdx-```
apps/docs/content/docs/(index)/prisma-orm/quickstart/mysql.mdx-
--
apps/docs/content/docs/(index)/prisma-orm/add-to-existing-project/planetscale.mdx-
apps/docs/content/docs/(index)/prisma-orm/add-to-existing-project/planetscale.mdx-```prisma title="prisma/schema.prisma"
apps/docs/content/docs/(index)/prisma-orm/add-to-existing-project/planetscale.mdx:model Post { // [!code ++]
apps/docs/content/docs/(index)/prisma-orm/add-to-existing-project/planetscale.mdx:  id        Int      `@id` `@default`(autoincrement()) // [!code ++]
apps/docs/content/docs/(index)/prisma-orm/add-to-existing-project/planetscale.mdx:  title     String // [!code ++]
apps/docs/content/docs/(index)/prisma-orm/add-to-existing-project/planetscale.mdx:  content   String? // [!code ++]
apps/docs/content/docs/(index)/prisma-orm/add-to-existing-project/planetscale.mdx:  published Boolean  `@default`(false) // [!code ++]
apps/docs/content/docs/(index)/prisma-orm/add-to-existing-project/planetscale.mdx:  authorId  Int // [!code ++]
apps/docs/content/docs/(index)/prisma-orm/add-to-existing-project/planetscale.mdx:  author    User     `@relation`(fields: [authorId], references: [id]) // [!code ++]
apps/docs/content/docs/(index)/prisma-orm/add-to-existing-project/planetscale.mdx:} // [!code ++]
apps/docs/content/docs/(index)/prisma-orm/add-to-existing-project/planetscale.mdx-
apps/docs/content/docs/(index)/prisma-orm/add-to-existing-project/planetscale.mdx:model User { // [!code ++]
apps/docs/content/docs/(index)/prisma-orm/add-to-existing-project/planetscale.mdx:  id    Int    `@id` `@default`(autoincrement()) // [!code ++]
apps/docs/content/docs/(index)/prisma-orm/add-to-existing-project/planetscale.mdx:  email String `@unique` // [!code ++]
apps/docs/content/docs/(index)/prisma-orm/add-to-existing-project/planetscale.mdx:  name  String? // [!code ++]
apps/docs/content/docs/(index)/prisma-orm/add-to-existing-project/planetscale.mdx:  posts Post[] // [!code ++]
apps/docs/content/docs/(index)/prisma-orm/add-to-existing-project/planetscale.mdx:} // [!code ++]
apps/docs/content/docs/(index)/prisma-orm/add-to-existing-project/planetscale.mdx-```
apps/docs/content/docs/(index)/prisma-orm/add-to-existing-project/planetscale.mdx-
--
apps/docs/content/docs/(index)/prisma-orm/quickstart/sqlite.mdx-```json title="package.json"
apps/docs/content/docs/(index)/prisma-orm/quickstart/sqlite.mdx-{
apps/docs/content/docs/(index)/prisma-orm/quickstart/sqlite.mdx:  "type": "module" // [!code ++]
apps/docs/content/docs/(index)/prisma-orm/quickstart/sqlite.mdx-}
apps/docs/content/docs/(index)/prisma-orm/quickstart/sqlite.mdx-```
--
apps/docs/content/docs/(index)/prisma-orm/quickstart/sqlite.mdx-}
apps/docs/content/docs/(index)/prisma-orm/quickstart/sqlite.mdx-
apps/docs/content/docs/(index)/prisma-orm/quickstart/sqlite.mdx:model User { // [!code ++]
apps/docs/content/docs/(index)/prisma-orm/quickstart/sqlite.mdx:  id    Int     `@id` `@default`(autoincrement()) // [!code ++]
apps/docs/content/docs/(index)/prisma-orm/quickstart/sqlite.mdx:  email String  `@unique` // [!code ++]
apps/docs/content/docs/(index)/prisma-orm/quickstart/sqlite.mdx:  name  String? // [!code ++]
apps/docs/content/docs/(index)/prisma-orm/quickstart/sqlite.mdx:  posts Post[] // [!code ++]
apps/docs/content/docs/(index)/prisma-orm/quickstart/sqlite.mdx:} // [!code ++]
apps/docs/content/docs/(index)/prisma-orm/quickstart/sqlite.mdx-
apps/docs/content/docs/(index)/prisma-orm/quickstart/sqlite.mdx:model Post { // [!code ++]
apps/docs/content/docs/(index)/prisma-orm/quickstart/sqlite.mdx:  id        Int     `@id` `@default`(autoincrement()) // [!code ++]
apps/docs/content/docs/(index)/prisma-orm/quickstart/sqlite.mdx:  title     String // [!code ++]
apps/docs/content/docs/(index)/prisma-orm/quickstart/sqlite.mdx:  content   String? // [!code ++]
apps/docs/content/docs/(index)/prisma-orm/quickstart/sqlite.mdx:  published Boolean `@default`(false) // [!code ++]
apps/docs/content/docs/(index)/prisma-orm/quickstart/sqlite.mdx:  author    User    `@relation`(fields: [authorId], references: [id]) // [!code ++]
apps/docs/content/docs/(index)/prisma-orm/quickstart/sqlite.mdx:  authorId  Int // [!code ++]
apps/docs/content/docs/(index)/prisma-orm/quickstart/sqlite.mdx:} // [!code ++]
apps/docs/content/docs/(index)/prisma-orm/quickstart/sqlite.mdx-```
apps/docs/content/docs/(index)/prisma-orm/quickstart/sqlite.mdx-
--
apps/docs/content/docs/(index)/prisma-orm/add-to-existing-project/mysql.mdx-```bash title=".env"
apps/docs/content/docs/(index)/prisma-orm/add-to-existing-project/mysql.mdx-DATABASE_URL="mysql://username:password@localhost:3306/mydb"
apps/docs/content/docs/(index)/prisma-orm/add-to-existing-project/mysql.mdx:DATABASE_USER="username" # [!code ++]
apps/docs/content/docs/(index)/prisma-orm/add-to-existing-project/mysql.mdx:DATABASE_PASSWORD="password" # [!code ++]
apps/docs/content/docs/(index)/prisma-orm/add-to-existing-project/mysql.mdx:DATABASE_NAME="mydb" # [!code ++]
apps/docs/content/docs/(index)/prisma-orm/add-to-existing-project/mysql.mdx:DATABASE_HOST="localhost" # [!code ++]
apps/docs/content/docs/(index)/prisma-orm/add-to-existing-project/mysql.mdx:DATABASE_PORT=3306 # [!code ++]
apps/docs/content/docs/(index)/prisma-orm/add-to-existing-project/mysql.mdx-```
apps/docs/content/docs/(index)/prisma-orm/add-to-existing-project/mysql.mdx-
--
apps/docs/content/docs/(index)/prisma-orm/add-to-existing-project/mysql.mdx-
apps/docs/content/docs/(index)/prisma-orm/add-to-existing-project/mysql.mdx-```prisma title="prisma/schema.prisma"
apps/docs/content/docs/(index)/prisma-orm/add-to-existing-project/mysql.mdx:model Post { // [!code ++]
apps/docs/content/docs/(index)/prisma-orm/add-to-existing-project/mysql.mdx:  id        Int      `@id` `@default`(autoincrement()) // [!code ++]
apps/docs/content/docs/(index)/prisma-orm/add-to-existing-project/mysql.mdx:  title     String // [!code ++]
apps/docs/content/docs/(index)/prisma-orm/add-to-existing-project/mysql.mdx:  content   String? // [!code ++]
apps/docs/content/docs/(index)/prisma-orm/add-to-existing-project/mysql.mdx:  published Boolean  `@default`(false) // [!code ++]
apps/docs/content/docs/(index)/prisma-orm/add-to-existing-project/mysql.mdx:  authorId  Int // [!code ++]
apps/docs/content/docs/(index)/prisma-orm/add-to-existing-project/mysql.mdx:  author    User     `@relation`(fields: [authorId], references: [id]) // [!code ++]
apps/docs/content/docs/(index)/prisma-orm/add-to-existing-project/mysql.mdx:} // [!code ++]
apps/docs/content/docs/(index)/prisma-orm/add-to-existing-project/mysql.mdx-
apps/docs/content/docs/(index)/prisma-orm/add-to-existing-project/mysql.mdx:model User { // [!code ++]
apps/docs/content/docs/(index)/prisma-orm/add-to-existing-project/mysql.mdx:  id    Int    `@id` `@default`(autoincrement()) // [!code ++]
apps/docs/content/docs/(index)/prisma-orm/add-to-existing-project/mysql.mdx:  email String `@unique` // [!code ++]
apps/docs/content/docs/(index)/prisma-orm/add-to-existing-project/mysql.mdx:  name  String? // [!code ++]
apps/docs/content/docs/(index)/prisma-orm/add-to-existing-project/mysql.mdx:  posts Post[] // [!code ++]
apps/docs/content/docs/(index)/prisma-orm/add-to-existing-project/mysql.mdx:} // [!code ++]
apps/docs/content/docs/(index)/prisma-orm/add-to-existing-project/mysql.mdx-```
apps/docs/content/docs/(index)/prisma-orm/add-to-existing-project/mysql.mdx-
--
apps/docs/content/docs/(index)/prisma-orm/quickstart/prisma-postgres.mdx-```json title="package.json"
apps/docs/content/docs/(index)/prisma-orm/quickstart/prisma-postgres.mdx-{
apps/docs/content/docs/(index)/prisma-orm/quickstart/prisma-postgres.mdx:  "type": "module" // [!code ++]
apps/docs/content/docs/(index)/prisma-orm/quickstart/prisma-postgres.mdx-}
apps/docs/content/docs/(index)/prisma-orm/quickstart/prisma-postgres.mdx-```
--
apps/docs/content/docs/(index)/prisma-orm/quickstart/prisma-postgres.mdx-}
apps/docs/content/docs/(index)/prisma-orm/quickstart/prisma-postgres.mdx-
apps/docs/content/docs/(index)/prisma-orm/quickstart/prisma-postgres.mdx:model User { // [!code ++]
apps/docs/content/docs/(index)/prisma-orm/quickstart/prisma-postgres.mdx:  id    Int     `@id` `@default`(autoincrement()) // [!code ++]
apps/docs/content/docs/(index)/prisma-orm/quickstart/prisma-postgres.mdx:  email String  `@unique` // [!code ++]
apps/docs/content/docs/(index)/prisma-orm/quickstart/prisma-postgres.mdx:  name  String? // [!code ++]
apps/docs/content/docs/(index)/prisma-orm/quickstart/prisma-postgres.mdx:  posts Post[] // [!code ++]
apps/docs/content/docs/(index)/prisma-orm/quickstart/prisma-postgres.mdx:} // [!code ++]
apps/docs/content/docs/(index)/prisma-orm/quickstart/prisma-postgres.mdx-
apps/docs/content/docs/(index)/prisma-orm/quickstart/prisma-postgres.mdx:model Post { // [!code ++]
apps/docs/content/docs/(index)/prisma-orm/quickstart/prisma-postgres.mdx:  id        Int     `@id` `@default`(autoincrement()) // [!code ++]
apps/docs/content/docs/(index)/prisma-orm/quickstart/prisma-postgres.mdx:  title     String // [!code ++]
apps/docs/content/docs/(index)/prisma-orm/quickstart/prisma-postgres.mdx:  content   String? // [!code ++]
apps/docs/content/docs/(index)/prisma-orm/quickstart/prisma-postgres.mdx:  published Boolean `@default`(false) // [!code ++]
apps/docs/content/docs/(index)/prisma-orm/quickstart/prisma-postgres.mdx:  author    User    `@relation`(fields: [authorId], references: [id]) // [!code ++]
apps/docs/content/docs/(index)/prisma-orm/quickstart/prisma-postgres.mdx:  authorId  Int // [!code ++]
apps/docs/content/docs/(index)/prisma-orm/quickstart/prisma-postgres.mdx:} // [!code ++]
apps/docs/content/docs/(index)/prisma-orm/quickstart/prisma-postgres.mdx-```
apps/docs/content/docs/(index)/prisma-orm/quickstart/prisma-postgres.mdx-
--
apps/docs/content/docs/(index)/prisma-orm/add-to-existing-project/cockroachdb.mdx-
apps/docs/content/docs/(index)/prisma-orm/add-to-existing-project/cockroachdb.mdx-```prisma title="prisma/schema.prisma"
apps/docs/content/docs/(index)/prisma-orm/add-to-existing-project/cockroachdb.mdx:model Post { // [!code ++]
apps/docs/content/docs/(index)/prisma-orm/add-to-existing-project/cockroachdb.mdx:  id        Int      `@id` `@default`(autoincrement()) // [!code ++]
apps/docs/content/docs/(index)/prisma-orm/add-to-existing-project/cockroachdb.mdx:  title     String // [!code ++]
apps/docs/content/docs/(index)/prisma-orm/add-to-existing-project/cockroachdb.mdx:  content   String? // [!code ++]
apps/docs/content/docs/(index)/prisma-orm/add-to-existing-project/cockroachdb.mdx:  published Boolean  `@default`(false) // [!code ++]
apps/docs/content/docs/(index)/prisma-orm/add-to-existing-project/cockroachdb.mdx:  authorId  Int // [!code ++]
apps/docs/content/docs/(index)/prisma-orm/add-to-existing-project/cockroachdb.mdx:  author    User     `@relation`(fields: [authorId], references: [id]) // [!code ++]
apps/docs/content/docs/(index)/prisma-orm/add-to-existing-project/cockroachdb.mdx:} // [!code ++]
apps/docs/content/docs/(index)/prisma-orm/add-to-existing-project/cockroachdb.mdx-
apps/docs/content/docs/(index)/prisma-orm/add-to-existing-project/cockroachdb.mdx:model User { // [!code ++]
apps/docs/content/docs/(index)/prisma-orm/add-to-existing-project/cockroachdb.mdx:  id    Int    `@id` `@default`(autoincrement()) // [!code ++]
apps/docs/content/docs/(index)/prisma-orm/add-to-existing-project/cockroachdb.mdx:  email String `@unique` // [!code ++]
apps/docs/content/docs/(index)/prisma-orm/add-to-existing-project/cockroachdb.mdx:  name  String? // [!code ++]
apps/docs/content/docs/(index)/prisma-orm/add-to-existing-project/cockroachdb.mdx:  posts Post[] // [!code ++]
apps/docs/content/docs/(index)/prisma-orm/add-to-existing-project/cockroachdb.mdx:} // [!code ++]
apps/docs/content/docs/(index)/prisma-orm/add-to-existing-project/cockroachdb.mdx-```
apps/docs/content/docs/(index)/prisma-orm/add-to-existing-project/cockroachdb.mdx-
--
apps/docs/content/docs/(index)/prisma-postgres/quickstart/drizzle-orm.mdx-{
apps/docs/content/docs/(index)/prisma-postgres/quickstart/drizzle-orm.mdx-  // ...
apps/docs/content/docs/(index)/prisma-postgres/quickstart/drizzle-orm.mdx:  "type": "module" // [!code ++]
apps/docs/content/docs/(index)/prisma-postgres/quickstart/drizzle-orm.mdx-  // ...
apps/docs/content/docs/(index)/prisma-postgres/quickstart/drizzle-orm.mdx-}
--
apps/docs/content/docs/(index)/prisma-orm/quickstart/cockroachdb.mdx-```json title="package.json"
apps/docs/content/docs/(index)/prisma-orm/quickstart/cockroachdb.mdx-{
apps/docs/content/docs/(index)/prisma-orm/quickstart/cockroachdb.mdx:  "type": "module" // [!code ++]
apps/docs/content/docs/(index)/prisma-orm/quickstart/cockroachdb.mdx-}
apps/docs/content/docs/(index)/prisma-orm/quickstart/cockroachdb.mdx-```
--
apps/docs/content/docs/(index)/prisma-orm/quickstart/cockroachdb.mdx-}
apps/docs/content/docs/(index)/prisma-orm/quickstart/cockroachdb.mdx-
apps/docs/content/docs/(index)/prisma-orm/quickstart/cockroachdb.mdx:model User { // [!code ++]
apps/docs/content/docs/(index)/prisma-orm/quickstart/cockroachdb.mdx:  id    Int     `@id` `@default`(autoincrement()) // [!code ++]
apps/docs/content/docs/(index)/prisma-orm/quickstart/cockroachdb.mdx:  email String  `@unique` // [!code ++]
apps/docs/content/docs/(index)/prisma-orm/quickstart/cockroachdb.mdx:  name  String? // [!code ++]
apps/docs/content/docs/(index)/prisma-orm/quickstart/cockroachdb.mdx:  posts Post[] // [!code ++]
apps/docs/content/docs/(index)/prisma-orm/quickstart/cockroachdb.mdx:} // [!code ++]
apps/docs/content/docs/(index)/prisma-orm/quickstart/cockroachdb.mdx-
apps/docs/content/docs/(index)/prisma-orm/quickstart/cockroachdb.mdx:model Post { // [!code ++]
apps/docs/content/docs/(index)/prisma-orm/quickstart/cockroachdb.mdx:  id        Int     `@id` `@default`(autoincrement()) // [!code ++]
apps/docs/content/docs/(index)/prisma-orm/quickstart/cockroachdb.mdx:  title     String // [!code ++]
apps/docs/content/docs/(index)/prisma-orm/quickstart/cockroachdb.mdx:  content   String? // [!code ++]
apps/docs/content/docs/(index)/prisma-orm/quickstart/cockroachdb.mdx:  published Boolean `@default`(false) // [!code ++]
apps/docs/content/docs/(index)/prisma-orm/quickstart/cockroachdb.mdx:  author    User    `@relation`(fields: [authorId], references: [id]) // [!code ++]
apps/docs/content/docs/(index)/prisma-orm/quickstart/cockroachdb.mdx:  authorId  Int // [!code ++]
apps/docs/content/docs/(index)/prisma-orm/quickstart/cockroachdb.mdx:} // [!code ++]
apps/docs/content/docs/(index)/prisma-orm/quickstart/cockroachdb.mdx-```
apps/docs/content/docs/(index)/prisma-orm/quickstart/cockroachdb.mdx-
--
apps/docs/content/docs/(index)/prisma-postgres/quickstart/typeorm.mdx-```typescript title="src/data-source.ts"
apps/docs/content/docs/(index)/prisma-postgres/quickstart/typeorm.mdx-import "reflect-metadata";
apps/docs/content/docs/(index)/prisma-postgres/quickstart/typeorm.mdx:import "dotenv/config"; // [!code ++]
apps/docs/content/docs/(index)/prisma-postgres/quickstart/typeorm.mdx-import { DataSource } from "typeorm";
apps/docs/content/docs/(index)/prisma-postgres/quickstart/typeorm.mdx-import { User } from "./entity/User";
apps/docs/content/docs/(index)/prisma-postgres/quickstart/typeorm.mdx-
apps/docs/content/docs/(index)/prisma-postgres/quickstart/typeorm.mdx:// Parse DATABASE_URL into connection parameters // [!code ++]
apps/docs/content/docs/(index)/prisma-postgres/quickstart/typeorm.mdx-function parseConnectionString(url: string) {
apps/docs/content/docs/(index)/prisma-postgres/quickstart/typeorm.mdx:  // [!code ++]
apps/docs/content/docs/(index)/prisma-postgres/quickstart/typeorm.mdx:  const parsed = new URL(url); // [!code ++]
apps/docs/content/docs/(index)/prisma-postgres/quickstart/typeorm.mdx-  return {
apps/docs/content/docs/(index)/prisma-postgres/quickstart/typeorm.mdx:    // [!code ++]
apps/docs/content/docs/(index)/prisma-postgres/quickstart/typeorm.mdx:    host: parsed.

... [stdout truncated: output exceeded 50000 characters (504730 total). Please modify your command to reduce output size, for example by:
- Using grep/rg to filter results
- Using head/tail to limit lines
- Using --max-count flag with grep/rg
- Processing output with awk/sed to extract only needed information]

Script executed:

# Search for documentation about code annotations or similar meta-examples
rg "!code" apps/docs/content/docs/guides -B 3 -A 3

Repository: prisma/web


Repository: prisma/web
Exit code: 0

stdout:

apps/docs/content/docs/guides/upgrade-prisma-orm/v6.mdx-  console.log(user);
apps/docs/content/docs/guides/upgrade-prisma-orm/v6.mdx-} catch (error) {
apps/docs/content/docs/guides/upgrade-prisma-orm/v6.mdx-  if (error instanceof NotFoundError) {
apps/docs/content/docs/guides/upgrade-prisma-orm/v6.mdx:    // [!code highlight]
apps/docs/content/docs/guides/upgrade-prisma-orm/v6.mdx:    console.error("User not found!"); // [!code highlight]
apps/docs/content/docs/guides/upgrade-prisma-orm/v6.mdx:  } // [!code highlight]
apps/docs/content/docs/guides/upgrade-prisma-orm/v6.mdx-  else {
apps/docs/content/docs/guides/upgrade-prisma-orm/v6.mdx-    console.error("Unexpected error:", error);
apps/docs/content/docs/guides/upgrade-prisma-orm/v6.mdx-  }
--
apps/docs/content/docs/guides/upgrade-prisma-orm/v6.mdx-  console.log(user);
apps/docs/content/docs/guides/upgrade-prisma-orm/v6.mdx-} catch (error) {
apps/docs/content/docs/guides/upgrade-prisma-orm/v6.mdx-  if (
apps/docs/content/docs/guides/upgrade-prisma-orm/v6.mdx:    // [!code highlight]
apps/docs/content/docs/guides/upgrade-prisma-orm/v6.mdx:    error instanceof Prisma.PrismaClientKnownRequestError && // [!code highlight]
apps/docs/content/docs/guides/upgrade-prisma-orm/v6.mdx:    error.code === "P2025" // Specific code for "record not found" // [!code highlight]
apps/docs/content/docs/guides/upgrade-prisma-orm/v6.mdx-  ) {
apps/docs/content/docs/guides/upgrade-prisma-orm/v6.mdx:    // [!code highlight]
apps/docs/content/docs/guides/upgrade-prisma-orm/v6.mdx:    console.error("User not found!"); // [!code highlight]
apps/docs/content/docs/guides/upgrade-prisma-orm/v6.mdx:  } // [!code highlight]
apps/docs/content/docs/guides/upgrade-prisma-orm/v6.mdx-  else {
apps/docs/content/docs/guides/upgrade-prisma-orm/v6.mdx-    console.error("Unexpected error:", error);
apps/docs/content/docs/guides/upgrade-prisma-orm/v6.mdx-  }
--
apps/docs/content/docs/guides/upgrade-prisma-orm/v6.mdx-```prisma
apps/docs/content/docs/guides/upgrade-prisma-orm/v6.mdx-generator client {
apps/docs/content/docs/guides/upgrade-prisma-orm/v6.mdx-  provider        = "prisma-client-js"
apps/docs/content/docs/guides/upgrade-prisma-orm/v6.mdx:  previewFeatures = ["fullTextIndex"] // [!code --]
apps/docs/content/docs/guides/upgrade-prisma-orm/v6.mdx-}
apps/docs/content/docs/guides/upgrade-prisma-orm/v6.mdx-```
apps/docs/content/docs/guides/upgrade-prisma-orm/v6.mdx-
--
apps/docs/content/docs/guides/upgrade-prisma-orm/v6.mdx-```prisma
apps/docs/content/docs/guides/upgrade-prisma-orm/v6.mdx-generator client {
apps/docs/content/docs/guides/upgrade-prisma-orm/v6.mdx-  provider        = "prisma-client-js"
apps/docs/content/docs/guides/upgrade-prisma-orm/v6.mdx:  previewFeatures = ["fullTextSearch"] // [!code --]
apps/docs/content/docs/guides/upgrade-prisma-orm/v6.mdx-}
apps/docs/content/docs/guides/upgrade-prisma-orm/v6.mdx-```
apps/docs/content/docs/guides/upgrade-prisma-orm/v6.mdx-
--
apps/docs/content/docs/guides/upgrade-prisma-orm/v6.mdx-```prisma
apps/docs/content/docs/guides/upgrade-prisma-orm/v6.mdx-generator client {
apps/docs/content/docs/guides/upgrade-prisma-orm/v6.mdx-  provider        = "prisma-client-js"
apps/docs/content/docs/guides/upgrade-prisma-orm/v6.mdx:  previewFeatures = ["fullTextSearchPostgres"] // [!code highlight]
apps/docs/content/docs/guides/upgrade-prisma-orm/v6.mdx-}
apps/docs/content/docs/guides/upgrade-prisma-orm/v6.mdx-```
--
apps/docs/content/docs/guides/switch-to-prisma-orm/from-mongoose.mdx-Add `dotenv` to load environment variables from your `.env` file:
apps/docs/content/docs/guides/switch-to-prisma-orm/from-mongoose.mdx-
apps/docs/content/docs/guides/switch-to-prisma-orm/from-mongoose.mdx-```typescript title="prisma.config.ts"
apps/docs/content/docs/guides/switch-to-prisma-orm/from-mongoose.mdx:import "dotenv/config"; // [!code ++]
apps/docs/content/docs/guides/switch-to-prisma-orm/from-mongoose.mdx-import { defineConfig, env } from "prisma/config";
apps/docs/content/docs/guides/switch-to-prisma-orm/from-mongoose.mdx-
apps/docs/content/docs/guides/switch-to-prisma-orm/from-mongoose.mdx-export default defineConfig({
--
apps/docs/content/docs/guides/switch-to-prisma-orm/from-mongoose.mdx-  content   String
apps/docs/content/docs/guides/switch-to-prisma-orm/from-mongoose.mdx-  published Boolean
apps/docs/content/docs/guides/switch-to-prisma-orm/from-mongoose.mdx-  v         Int     `@map`("__v")
apps/docs/content/docs/guides/switch-to-prisma-orm/from-mongoose.mdx:  author   String   `@db.ObjectId` // [!code --]
apps/docs/content/docs/guides/switch-to-prisma-orm/from-mongoose.mdx:  author   users  `@relation`(fields: [authorId], references: [id]) // [!code ++]
apps/docs/content/docs/guides/switch-to-prisma-orm/from-mongoose.mdx:  authorId String `@map`("author") `@db.ObjectId` // [!code ++]
apps/docs/content/docs/guides/switch-to-prisma-orm/from-mongoose.mdx-
apps/docs/content/docs/guides/switch-to-prisma-orm/from-mongoose.mdx-  categories String[] `@db.ObjectId`
apps/docs/content/docs/guides/switch-to-prisma-orm/from-mongoose.mdx-}
--
apps/docs/content/docs/guides/switch-to-prisma-orm/from-mongoose.mdx-  email   String        `@unique`(map: "email_1")
apps/docs/content/docs/guides/switch-to-prisma-orm/from-mongoose.mdx-  name    String
apps/docs/content/docs/guides/switch-to-prisma-orm/from-mongoose.mdx-  profile UsersProfile?
apps/docs/content/docs/guides/switch-to-prisma-orm/from-mongoose.mdx:  posts   posts[] // [!code ++]
apps/docs/content/docs/guides/switch-to-prisma-orm/from-mongoose.mdx-}
apps/docs/content/docs/guides/switch-to-prisma-orm/from-mongoose.mdx-```
apps/docs/content/docs/guides/switch-to-prisma-orm/from-mongoose.mdx-
--
apps/docs/content/docs/guides/switch-to-prisma-orm/from-mongoose.mdx-  id   String `@id` `@default`(auto()) `@map`("_id") `@db.ObjectId`
apps/docs/content/docs/guides/switch-to-prisma-orm/from-mongoose.mdx-  v    Int    `@map`("__v")
apps/docs/content/docs/guides/switch-to-prisma-orm/from-mongoose.mdx-  name String
apps/docs/content/docs/guides/switch-to-prisma-orm/from-mongoose.mdx:  posts    posts[]  `@relation`(fields: [postIds], references: [id]) // [!code ++]
apps/docs/content/docs/guides/switch-to-prisma-orm/from-mongoose.mdx:  postIds String[] `@db.ObjectId` // [!code ++]
apps/docs/content/docs/guides/switch-to-prisma-orm/from-mongoose.mdx-}
apps/docs/content/docs/guides/switch-to-prisma-orm/from-mongoose.mdx-
apps/docs/content/docs/guides/switch-to-prisma-orm/from-mongoose.mdx-model posts {
--
apps/docs/content/docs/guides/switch-to-prisma-orm/from-mongoose.mdx-  author   users  `@relation`(fields: [authorId], references: [id])
apps/docs/content/docs/guides/switch-to-prisma-orm/from-mongoose.mdx-  authorId String `@map`("author") `@db.ObjectId`
apps/docs/content/docs/guides/switch-to-prisma-orm/from-mongoose.mdx-
apps/docs/content/docs/guides/switch-to-prisma-orm/from-mongoose.mdx:  categories  String[] `@db.ObjectId` // [!code --]
apps/docs/content/docs/guides/switch-to-prisma-orm/from-mongoose.mdx:  categories  categories[] `@relation`(fields: [categoryIds], references: [id]) // [!code ++]
apps/docs/content/docs/guides/switch-to-prisma-orm/from-mongoose.mdx:  categoryIds String[] `@map`("categories") `@db.ObjectId` // [!code ++]
apps/docs/content/docs/guides/switch-to-prisma-orm/from-mongoose.mdx-}
apps/docs/content/docs/guides/switch-to-prisma-orm/from-mongoose.mdx-
apps/docs/content/docs/guides/switch-to-prisma-orm/from-mongoose.mdx-model users {
--
apps/docs/content/docs/guides/runtimes/deno.mdx-Open the generated `prisma.config.ts` file. Since Deno loads environment variables using the `--env=.env` flag (configured in `deno.json` tasks), you can remove the `dotenv/config` import if it was generated:
apps/docs/content/docs/guides/runtimes/deno.mdx-
apps/docs/content/docs/guides/runtimes/deno.mdx-```typescript title="prisma.config.ts"
apps/docs/content/docs/guides/runtimes/deno.mdx:import "dotenv/config"; // [!code --]
apps/docs/content/docs/guides/runtimes/deno.mdx-import { defineConfig, env } from "prisma/config";
apps/docs/content/docs/guides/runtimes/deno.mdx-
apps/docs/content/docs/guides/runtimes/deno.mdx-export default defineConfig({
--
apps/docs/content/docs/guides/runtimes/deno.mdx-Update your `.env` file to replace the `DATABASE_URL` with the new connection string:
apps/docs/content/docs/guides/runtimes/deno.mdx-
apps/docs/content/docs/guides/runtimes/deno.mdx-```bash title=".env"
apps/docs/content/docs/guides/runtimes/deno.mdx:DATABASE_URL="your_database_url_here" # [!code --]
apps/docs/content/docs/guides/runtimes/deno.mdx:DATABASE_URL="your_direct_connection_string_here" # [!code ++]
apps/docs/content/docs/guides/runtimes/deno.mdx-```
apps/docs/content/docs/guides/runtimes/deno.mdx-
apps/docs/content/docs/guides/runtimes/deno.mdx-### 2.4. Update your Prisma schema
--
apps/docs/content/docs/guides/runtimes/deno.mdx-generator client {
apps/docs/content/docs/guides/runtimes/deno.mdx-  provider = "prisma-client"
apps/docs/content/docs/guides/runtimes/deno.mdx-  output   = "../generated/prisma"
apps/docs/content/docs/guides/runtimes/deno.mdx:  runtime  = "deno" // [!code ++]
apps/docs/content/docs/guides/runtimes/deno.mdx-}
apps/docs/content/docs/guides/runtimes/deno.mdx-
apps/docs/content/docs/guides/runtimes/deno.mdx-datasource db {
apps/docs/content/docs/guides/runtimes/deno.mdx-  provider = "postgresql"
apps/docs/content/docs/guides/runtimes/deno.mdx-}
apps/docs/content/docs/guides/runtimes/deno.mdx-
apps/docs/content/docs/guides/runtimes/deno.mdx:model User { // [!code ++]
apps/docs/content/docs/guides/runtimes/deno.mdx:  id    Int     `@id` `@default`(autoincrement()) // [!code ++]
apps/docs/content/docs/guides/runtimes/deno.mdx:  email String  `@unique` // [!code ++]
apps/docs/content/docs/guides/runtimes/deno.mdx:  name  String? // [!code ++]
apps/docs/content/docs/guides/runtimes/deno.mdx:} // [!code ++]
apps/docs/content/docs/guides/runtimes/deno.mdx-```
apps/docs/content/docs/guides/runtimes/deno.mdx-
apps/docs/content/docs/guides/runtimes/deno.mdx-:::note
--
apps/docs/content/docs/guides/runtimes/deno.mdx-  schema: "prisma/schema.prisma",
apps/docs/content/docs/guides/runtimes/deno.mdx-  migrations: {
apps/docs/content/docs/guides/runtimes/deno.mdx-    path: "prisma/migrations",
apps/docs/content/docs/guides/runtimes/deno.mdx:    seed: "deno run -A --env=.env ./prisma/seed.ts", // [!code ++]
apps/docs/content/docs/guides/runtimes/deno.mdx-  },
apps/docs/content/docs/guides/runtimes/deno.mdx-  datasource: {
apps/docs/content/docs/guides/runtimes/deno.mdx-    url: env("DATABASE_URL"),
--
apps/docs/content/docs/guides/runtimes/bun.mdx-Update your `.env` file to replace the `DATABASE_URL` with the new connection string:
apps/docs/content/docs/guides/runtimes/bun.mdx-
apps/docs/content/docs/guides/runtimes/bun.mdx-```bash title=".env"
apps/docs/content/docs/guides/runtimes/bun.mdx:DATABASE_URL="your_database_url_here" # [!code --]
apps/docs/content/docs/guides/runtimes/bun.mdx:DATABASE_URL="your_direct_connection_string_here" # [!code ++]
apps/docs/content/docs/guides/runtimes/bun.mdx-```
apps/docs/content/docs/guides/runtimes/bun.mdx-
apps/docs/content/docs/guides/runtimes/bun.mdx-### 2.4. Update your Prisma schema
--
apps/docs/content/docs/guides/runtimes/bun.mdx-  provider = "postgresql"
apps/docs/content/docs/guides/runtimes/bun.mdx-}
apps/docs/content/docs/guides/runtimes/bun.mdx-
apps/docs/content/docs/guides/runtimes/bun.mdx:model User { // [!code ++]
apps/docs/content/docs/guides/runtimes/bun.mdx:  id    Int     `@id` `@default`(autoincrement()) // [!code ++]
apps/docs/content/docs/guides/runtimes/bun.mdx:  email String  `@unique` // [!code ++]
apps/docs/content/docs/guides/runtimes/bun.mdx:  name  String? // [!code ++]
apps/docs/content/docs/guides/runtimes/bun.mdx:} // [!code ++]
apps/docs/content/docs/guides/runtimes/bun.mdx-```
apps/docs/content/docs/guides/runtimes/bun.mdx-
apps/docs/content/docs/guides/runtimes/bun.mdx-## 3. Generate Prisma Client and run migrations
--
apps/docs/content/docs/guides/runtimes/bun.mdx-  schema: "prisma/schema.prisma",
apps/docs/content/docs/guides/runtimes/bun.mdx-  migrations: {
apps/docs/content/docs/guides/runtimes/bun.mdx-    path: "prisma/migrations",
apps/docs/content/docs/guides/runtimes/bun.mdx:    seed: `bun run prisma/seed.ts`, // [!code ++]
apps/docs/content/docs/guides/runtimes/bun.mdx-  },
apps/docs/content/docs/guides/runtimes/bun.mdx-  datasource: {
apps/docs/content/docs/guides/runtimes/bun.mdx-    url: env("DATABASE_URL"),
--
apps/docs/content/docs/guides/making-guides.mdx-- Include complete, runnable code examples
apps/docs/content/docs/guides/making-guides.mdx-- Use syntax highlighting with language specification
apps/docs/content/docs/guides/making-guides.mdx-- Include file paths in code block metadata using `title=`
apps/docs/content/docs/guides/making-guides.mdx:- Use ` ```bash title=".env" ` for `.env` files so inline `# [!code ++]`, `# [!code --]`, and `# [!code highlight]` annotations render correctly
apps/docs/content/docs/guides/making-guides.mdx-- Reserve ` ```text ` for other plain-text files that do not need Fumadocs code annotations
apps/docs/content/docs/guides/making-guides.mdx-- Use comments sparingly - only when needed to explain complex logic
apps/docs/content/docs/guides/making-guides.mdx-- Use ` ```npm ` for package manager commands (auto-converts to pnpm/yarn/bun)
--
apps/docs/content/docs/guides/making-guides.mdx-Example showing changes:
apps/docs/content/docs/guides/making-guides.mdx-
apps/docs/content/docs/guides/making-guides.mdx-```typescript title="prisma.config.ts"
apps/docs/content/docs/guides/making-guides.mdx:import "dotenv/config"; // [!code ++]
apps/docs/content/docs/guides/making-guides.mdx-import { defineConfig, env } from "prisma/config";
apps/docs/content/docs/guides/making-guides.mdx-
apps/docs/content/docs/guides/making-guides.mdx-export default defineConfig({
--
apps/docs/content/docs/guides/making-guides.mdx-If you need to show changes in an `.env` file, use bash comments for the Fumadocs annotations:
apps/docs/content/docs/guides/making-guides.mdx-
apps/docs/content/docs/guides/making-guides.mdx-```bash title=".env"
apps/docs/content/docs/guides/making-guides.mdx:DATABASE_URL="postgresql://user:password@localhost:5432/mydb" # [!code --]
apps/docs/content/docs/guides/making-guides.mdx-
apps/docs/content/docs/guides/making-guides.mdx:DATABASE_URL="postgresql://user:password@db.example.com:5432/mydb" # [!code ++]
apps/docs/content/docs/guides/making-guides.mdx-```
apps/docs/content/docs/guides/making-guides.mdx-
apps/docs/content/docs/guides/making-guides.mdx-### Database provider compatibility
--
apps/docs/content/docs/guides/making-guides.mdx-  provider = "postgresql"
apps/docs/content/docs/guides/making-guides.mdx-}
apps/docs/content/docs/guides/making-guides.mdx-
apps/docs/content/docs/guides/making-guides.mdx:model User { // [!code ++]
apps/docs/content/docs/guides/making-guides.mdx:  id    Int     `@id` `@default`(autoincrement()) // [!code ++]
apps/docs/content/docs/guides/making-guides.mdx:  email String  `@unique` // [!code ++]
apps/docs/content/docs/guides/making-guides.mdx:  name  String? // [!code ++]
apps/docs/content/docs/guides/making-guides.mdx:  posts Post[] // [!code ++]
apps/docs/content/docs/guides/making-guides.mdx:} // [!code ++]
apps/docs/content/docs/guides/making-guides.mdx-
apps/docs/content/docs/guides/making-guides.mdx:model Post { // [!code ++]
apps/docs/content/docs/guides/making-guides.mdx:  id        Int     `@id` `@default`(autoincrement()) // [!code ++]
apps/docs/content/docs/guides/making-guides.mdx:  title     String // [!code ++]
apps/docs/content/docs/guides/making-guides.mdx:  content   String? // [!code ++]
apps/docs/content/docs/guides/making-guides.mdx:  published Boolean `@default`(false) // [!code ++]
apps/docs/content/docs/guides/making-guides.mdx:  authorId  Int // [!code ++]
apps/docs/content/docs/guides/making-guides.mdx:  author    User    `@relation`(fields: [authorId], references: [id]) // [!code ++]
apps/docs/content/docs/guides/making-guides.mdx:} // [!code ++]
apps/docs/content/docs/guides/making-guides.mdx-```
apps/docs/content/docs/guides/making-guides.mdx-
apps/docs/content/docs/guides/making-guides.mdx-### 2.3. Run migrations and generate Prisma Client
--
apps/docs/content/docs/guides/making-guides.mdx-    "nextjs",
apps/docs/content/docs/guides/making-guides.mdx-    "astro",
apps/docs/content/docs/guides/making-guides.mdx-    "nuxt",
apps/docs/content/docs/guides/making-guides.mdx:    "your-new-guide" // [!code ++]
apps/docs/content/docs/guides/making-guides.mdx-  ]
apps/docs/content/docs/guides/making-guides.mdx-}
apps/docs/content/docs/guides/making-guides.mdx-```
--
apps/docs/content/docs/guides/postgres/flyio.mdx-  // ...
apps/docs/content/docs/guides/postgres/flyio.mdx-  "scripts": {
apps/docs/content/docs/guides/postgres/flyio.mdx-    // ...
apps/docs/content/docs/guides/postgres/flyio.mdx:    "postinstall": "prisma generate" // [!code ++]
apps/docs/content/docs/guides/postgres/flyio.mdx-  }
apps/docs/content/docs/guides/postgres/flyio.mdx-}
apps/docs/content/docs/guides/postgres/flyio.mdx-```
--
apps/docs/content/docs/guides/integrations/deno.mdx-```json title="deno.json"
apps/docs/content/docs/guides/integrations/deno.mdx-{
apps/docs/content/docs/guides/integrations/deno.mdx-  "tasks": {
apps/docs/content/docs/guides/integrations/deno.mdx:    "dev": "deno run --watch --env-file main.ts" // [!code highlight]
apps/docs/content/docs/guides/integrations/deno.mdx-  }
apps/docs/content/docs/guides/integrations/deno.mdx-}
apps/docs/content/docs/guides/integrations/deno.mdx-```
--
apps/docs/content/docs/guides/integrations/deno.mdx-
apps/docs/content/docs/guides/integrations/deno.mdx-```prisma title="prisma/schema.prisma"
apps/docs/content/docs/guides/integrations/deno.mdx-generator client {
apps/docs/content/docs/guides/integrations/deno.mdx:  provider = "prisma-client" // [!code highlight]
apps/docs/content/docs/guides/integrations/deno.mdx-  output   = "../generated/prisma"
apps/docs/content/docs/guides/integrations/deno.mdx:  runtime  = "deno" // [!code ++]
apps/docs/content/docs/guides/integrations/deno.mdx-}
apps/docs/content/docs/guides/integrations/deno.mdx-
apps/docs/content/docs/guides/integrations/deno.mdx-datasource db {
apps/docs/content/docs/guides/integrations/deno.mdx-  provider = "postgresql"
apps/docs/content/docs/guides/integrations/deno.mdx-}
apps/docs/content/docs/guides/integrations/deno.mdx-
apps/docs/content/docs/guides/integrations/deno.mdx:model Log { // [!code ++]
apps/docs/content/docs/guides/integrations/deno.mdx:  id      Int    `@id` `@default`(autoincrement()) // [!code ++]
apps/docs/content/docs/guides/integrations/deno.mdx:  level   Level // [!code ++]
apps/docs/content/docs/guides/integrations/deno.mdx:  message String // [!code ++]
apps/docs/content/docs/guides/integrations/deno.mdx:  meta    Json // [!code ++]
apps/docs/content/docs/guides/integrations/deno.mdx:} // [!code ++]
apps/docs/content/docs/guides/integrations/deno.mdx: // [!code ++]
apps/docs/content/docs/guides/integrations/deno.mdx:enum Level { // [!code ++]
apps/docs/content/docs/guides/integrations/deno.mdx:  Info // [!code ++]
apps/docs/content/docs/guides/integrations/deno.mdx:  Warn // [!code ++]
apps/docs/content/docs/guides/integrations/deno.mdx:  Error // [!code ++]
apps/docs/content/docs/guides/integrations/deno.mdx:} // [!code ++]
apps/docs/content/docs/guides/integrations/deno.mdx-```
apps/docs/content/docs/guides/integrations/deno.mdx-
apps/docs/content/docs/guides/integrations/deno.mdx-### 4.3 Generate and apply migrations
--
apps/docs/content/docs/guides/integrations/embed-studio.mdx-  provider = "postgresql" // this will change depending on the --datasource-provider flag used in the init command
apps/docs/content/docs/guides/integrations/embed-studio.mdx-}
apps/docs/content/docs/guides/integrations/embed-studio.mdx-
apps/docs/content/docs/guides/integrations/embed-studio.mdx: // [!code ++]
apps/docs/content/docs/guides/integrations/embed-studio.mdx:model User { // [!code ++]
apps/docs/content/docs/guides/integrations/embed-studio.mdx:  id    Int    `@id` `@default`(autoincrement()) // [!code ++]
apps/docs/content/docs/guides/integrations/embed-studio.mdx:  name  String // [!code ++]
apps/docs/content/docs/guides/integrations/embed-studio.mdx:  email String `@unique` // [!code ++]
apps/docs/content/docs/guides/integrations/embed-studio.mdx:  posts Post[] // [!code ++]
apps/docs/content/docs/guides/integrations/embed-studio.mdx:} // [!code ++]
apps/docs/content/docs/guides/integrations/embed-studio.mdx: // [!code ++]
apps/docs/content/docs/guides/integrations/embed-studio.mdx:model Post { // [!code ++]
apps/docs/content/docs/guides/integrations/embed-studio.mdx:  id        Int      `@id` `@default`(autoincrement()) // [!code ++]
apps/docs/content/docs/guides/integrations/embed-studio.mdx:  title     String // [!code ++]
apps/docs/content/docs/guides/integrations/embed-studio.mdx:  content   String? // [!code ++]
apps/docs/content/docs/guides/integrations/embed-studio.mdx:  published Boolean  `@default`(false) // [!code ++]
apps/docs/content/docs/guides/integrations/embed-studio.mdx:  authorId  Int // [!code ++]
apps/docs/content/docs/guides/integrations/embed-studio.mdx:  author    User     `@relation`(fields: [authorId], references: [id]) // [!code ++]
apps/docs/content/docs/guides/integrations/embed-studio.mdx:  createdAt DateTime `@default`(now()) // [!code ++]
apps/docs/content/docs/guides/integrations/embed-studio.mdx:} // [!code ++]
apps/docs/content/docs/guides/integrations/embed-studio.mdx: // [!code ++]
apps/docs/content/docs/guides/integrations/embed-studio.mdx-```
apps/docs/content/docs/guides/integrations/embed-studio.mdx-
apps/docs/content/docs/guides/integrations/embed-studio.mdx-### 2.4 Add `dotenv` to `prisma.config.ts`
--
apps/docs/content/docs/guides/integrations/embed-studio.mdx-Include an import for `dotenv` at the top of the `prisma.config.ts`
apps/docs/content/docs/guides/integrations/embed-studio.mdx-
apps/docs/content/docs/guides/integrations/embed-studio.mdx-```ts
apps/docs/content/docs/guides/integrations/embed-studio.mdx:import "dotenv/config"; // [!code ++]
apps/docs/content/docs/guides/integrations/embed-studio.mdx-import { defineConfig, env } from "prisma/config";
apps/docs/content/docs/guides/integrations/embed-studio.mdx-export default defineConfig({
apps/docs/content/docs/guides/integrations/embed-studio.mdx-  schema: "prisma/schema.prisma",
--
apps/docs/content/docs/guides/integrations/permit-io.mdx-Include an import for `dotenv` at the top of the `prisma.config.ts`
apps/docs/content/docs/guides/integrations/permit-io.mdx-
apps/docs/content/docs/guides/integrations/permit-io.mdx-```ts
apps/docs/content/docs/guides/integrations/permit-io.mdx:import "dotenv/config"; // [!code ++]
apps/docs/content/docs/guides/integrations/permit-io.mdx-import { defineConfig, env } from "prisma/config";
apps/docs/content/docs/guides/integrations/permit-io.mdx-export default defineConfig({
apps/docs/content/docs/guides/integrations/permit-io.mdx-  schema: "prisma/schema.prisma",
--
apps/docs/content/docs/guides/integrations/github-actions.mdx-Create a `prisma.config.ts` file to configure Prisma with seeding:
apps/docs/content/docs/guides/integrations/github-actions.mdx-
apps/docs/content/docs/guides/integrations/github-actions.mdx-```typescript title="prisma.config.ts"
apps/docs/content/docs/guides/integrations/github-actions.mdx:import "dotenv/config"; // [!code ++]
apps/docs/content/docs/guides/integrations/github-actions.mdx:import { defineConfig, env } from "prisma/config"; // [!code ++]
apps/docs/content/docs/guides/integrations/github-actions.mdx:// [!code ++]
apps/docs/content/docs/guides/integrations/github-actions.mdx-export default defineConfig({
apps/docs/content/docs/guides/integrations/github-actions.mdx:  // [!code ++]
apps/docs/content/docs/guides/integrations/github-actions.mdx:  schema: "prisma/schema.prisma", // [!code ++]
apps/docs/content/docs/guides/integrations/github-actions.mdx-  migrations: {
apps/docs/content/docs/guides/integrations/github-actions.mdx:    // [!code ++]
apps/docs/content/docs/guides/integrations/github-actions.mdx:    path: "prisma/migrations", // [!code ++]
apps/docs/content/docs/guides/integrations/github-actions.mdx:    seed: `tsx src/seed.ts`, // [!code ++]
apps/docs/content/docs/guides/integrations/github-actions.mdx:  }, // [!code ++]
apps/docs/content/docs/guides/integrations/github-actions.mdx-  datasource: {
apps/docs/content/docs/guides/integrations/github-actions.mdx:    // [!code ++]
apps/docs/content/docs/guides/integrations/github-actions.mdx:    url: env("DATABASE_URL"), // [!code ++]
apps/docs/content/docs/guides/integrations/github-actions.mdx:  }, // [!code ++]
apps/docs/content/docs/guides/integrations/github-actions.mdx:}); // [!code ++]
apps/docs/content/docs/guides/integrations/github-actions.mdx-```
apps/docs/content/docs/guides/integrations/github-actions.mdx-
apps/docs/content/docs/guides/integrations/github-actions.mdx-:::note
--
apps/docs/content/docs/guides/integrations/github-actions.mdx-  "version": "1.0.0",
apps/docs/content/docs/guides/integrations/github-actions.mdx-  "description": "",
apps/docs/content/docs/guides/integrations/github-actions.mdx-  "scripts": {
apps/docs/content/docs/guides/integrations/github-actions.mdx:    "seed": "tsx src/seed.ts" // [!code ++]
apps/docs/content/docs/guides/integrations/github-actions.mdx-  },
apps/docs/content/docs/guides/integrations/github-actions.mdx-  // other configurations...
apps/docs/content/docs/guides/integrations/github-actions.mdx-}
--
apps/docs/content/docs/guides/integrations/datadog.mdx-  provider = "postgresql"
apps/docs/content/docs/guides/integrations/datadog.mdx-}
apps/docs/content/docs/guides/integrations/datadog.mdx-
apps/docs/content/docs/guides/integrations/datadog.mdx:model User { // [!code ++]
apps/docs/content/docs/guides/integrations/datadog.mdx:  id    Int     `@id` `@default`(autoincrement()) // [!code ++]
apps/docs/content/docs/guides/integrations/datadog.mdx:  email String  `@unique` // [!code ++]
apps/docs/content/docs/guides/integrations/datadog.mdx:  name  String? // [!code ++]
apps/docs/content/docs/guides/integrations/datadog.mdx:  posts Post[] // [!code ++]
apps/docs/content/docs/guides/integrations/datadog.mdx:} // [!code ++]
apps/docs/content/docs/guides/integrations/datadog.mdx: // [!code ++]
apps/docs/content/docs/guides/integrations/datadog.mdx:model Post { // [!code ++]
apps/docs/content/docs/guides/integrations/datadog.mdx:  id        Int     `@id` `@default`(autoincrement()) // [!code ++]
apps/docs/content/docs/guides/integrations/datadog.mdx:  title     String // [!code ++]
apps/docs/content/docs/guides/integrations/datadog.mdx:  content   String? // [!code ++]
apps/docs/content/docs/guides/integrations/datadog.mdx:  published Boolean `@default`(false) // [!code ++]
apps/docs/content/docs/guides/integrations/datadog.mdx:  authorId  Int // [!code ++]
apps/docs/content/docs/guides/integrations/datadog.mdx:  author    User    `@relation`(fields: [authorId], references: [id]) // [!code ++]
apps/docs/content/docs/guides/integrations/datadog.mdx:} // [!code ++]
apps/docs/content/docs/guides/integrations/datadog.mdx-```
apps/docs/content/docs/guides/integrations/datadog.mdx-
apps/docs/content/docs/guides/integrations/datadog.mdx-Create a `prisma.config.ts` file to configure Prisma:
apps/docs/content/docs/guides/integrations/datadog.mdx-
apps/docs/content/docs/guides/integrations/datadog.mdx-```typescript title="prisma.config.ts"
apps/docs/content/docs/guides/integrations/datadog.mdx:import "dotenv/config"; // [!code ++]
apps/docs/content/docs/guides/integrations/datadog.mdx:import { defineConfig, env } from "prisma/config"; // [!code ++]
apps/docs/content/docs/guides/integrations/datadog.mdx:// [!code ++]
apps/docs/content/docs/guides/integrations/datadog.mdx-export default defineConfig({
apps/docs/content/docs/guides/integrations/datadog.mdx:  // [!code ++]
apps/docs/content/docs/guides/integrations/datadog.mdx:  schema: "prisma/schema.prisma", // [!code ++]
apps/docs/content/docs/guides/integrations/datadog.mdx-  migrations: {
apps/docs/content/docs/guides/integrations/datadog.mdx:    // [!code ++]
apps/docs/content/docs/guides/integrations/datadog.mdx:    path: "prisma/migrations", // [!code ++]
apps/docs/content/docs/guides/integrations/datadog.mdx:  }, // [!code ++]
apps/docs/content/docs/guides/integrations/datadog.mdx-  datasource: {
apps/docs/content/docs/guides/integrations/datadog.mdx:    // [!code ++]
apps/docs/content/docs/guides/integrations/datadog.mdx:    url: env("DATABASE_URL"), // [!code ++]
apps/docs/content/docs/guides/integrations/datadog.mdx:  }, // [!code ++]
apps/docs/content/docs/guides/integrations/datadog.mdx:}); // [!code ++]
apps/docs/content/docs/guides/integrations/datadog.mdx-```
apps/docs/content/docs/guides/integrations/datadog.mdx-
apps/docs/content/docs/guides/integrations/datadog.mdx-:::note
--
apps/docs/content/docs/guides/integrations/datadog.mdx-To resolve this, add the following override to your package.json:
apps/docs/content/docs/guides/integrations/datadog.mdx-
apps/docs/content/docs/guides/integrations/datadog.mdx-```json
apps/docs/content/docs/guides/integrations/datadog.mdx:"overrides": { // [!code ++]
apps/docs/content/docs/guides/integrations/datadog.mdx:  "@opentelemetry/api": "1.8.0" // [!code ++]
apps/docs/content/docs/guides/integrations/datadog.mdx:} // [!code ++]
apps/docs/content/docs/guides/integrations/datadog.mdx-```
apps/docs/content/docs/guides/integrations/datadog.mdx-
apps/docs/content/docs/guides/integrations/datadog.mdx-This is necessary because [`dd-trace` does not yet support version `1.9.0` or above of `@opentelemetry/api`](https://github.com/DataDog/dd-trace-js#datadog-with-opentelemetery).
--
apps/docs/content/docs/guides/integrations/ai-sdk.mdx-  provider = "postgresql"
apps/docs/content/docs/guides/integrations/ai-sdk.mdx-}
apps/docs/content/docs/guides/integrations/ai-sdk.mdx-
apps/docs/content/docs/guides/integrations/ai-sdk.mdx:model Session { // [!code ++]
apps/docs/content/docs/guides/integrations/ai-sdk.mdx:  id        String    `@id` // [!code ++]
apps/docs/content/docs/guides/integrations/ai-sdk.mdx:  createdAt DateTime  `@default`(now()) // [!code ++]
apps/docs/content/docs/guides/integrations/ai-sdk.mdx:  updatedAt DateTime  `@updatedAt` // [!code ++]
apps/docs/content/docs/guides/integrations/ai-sdk.mdx:  messages  Message[] // [!code ++]
apps/docs/content/docs/guides/integrations/ai-sdk.mdx:} // [!code ++]
apps/docs/content/docs/guides/integrations/ai-sdk.mdx: // [!code ++]
apps/docs/content/docs/guides/integrations/ai-sdk.mdx:model Message { // [!code ++]
apps/docs/content/docs/guides/integrations/ai-sdk.mdx:  id        String      `@id` `@default`(cuid()) // [!code ++]
apps/docs/content/docs/guides/integrations/ai-sdk.mdx:  role      MessageRole // [!code ++]
apps/docs/content/docs/guides/integrations/ai-sdk.mdx:  content   String // [!code ++]
apps/docs/content/docs/guides/integrations/ai-sdk.mdx:  createdAt DateTime    `@default`(now()) // [!code ++]
apps/docs/content/docs/guides/integrations/ai-sdk.mdx:  sessionId String // [!code ++]
apps/docs/content/docs/guides/integrations/ai-sdk.mdx:  session   Session     `@relation`(fields: [sessionId], references: [id], onDelete: Cascade) // [!code ++]
apps/docs/content/docs/guides/integrations/ai-sdk.mdx:} // [!code ++]
apps/docs/content/docs/guides/integrations/ai-sdk.mdx: // [!code ++]
apps/docs/content/docs/guides/integrations/ai-sdk.mdx:enum MessageRole { // [!code ++]
apps/docs/content/docs/guides/integrations/ai-sdk.mdx:  USER // [!code ++]
apps/docs/content/docs/guides/integrations/ai-sdk.mdx:  ASSISTANT // [!code ++]
apps/docs/content/docs/guides/integrations/ai-sdk.mdx:} // [!code ++]
apps/docs/content/docs/guides/integrations/ai-sdk.mdx-```
apps/docs/content/docs/guides/integrations/ai-sdk.mdx-
apps/docs/content/docs/guides/integrations/ai-sdk.mdx-This creates three models: `Session`, `Message`, and `MessageRole`.
--
apps/docs/content/docs/guides/integrations/ai-sdk.mdx-Include an import for `dotenv` at the top of the `prisma.config.ts`
apps/docs/content/docs/guides/integrations/ai-sdk.mdx-
apps/docs/content/docs/guides/integrations/ai-sdk.mdx-```ts
apps/docs/content/docs/guides/integrations/ai-sdk.mdx:import "dotenv/config"; // [!code ++]
apps/docs/content/docs/guides/integrations/ai-sdk.mdx-import { defineConfig, env } from "prisma/config";
apps/docs/content/docs/guides/integrations/ai-sdk.mdx-export default defineConfig({
apps/docs/content/docs/guides/integrations/ai-sdk.mdx-  schema: "prisma/schema.prisma",
--
apps/docs/content/docs/guides/integrations/ai-sdk.mdx-```tsx title="app/api/chat/route.ts"
apps/docs/content/docs/guides/integrations/ai-sdk.mdx-import { openai } from "@ai-sdk/openai";
apps/docs/content/docs/guides/integrations/ai-sdk.mdx-import { streamText, UIMessage, convertToModelMessages } from "ai";
apps/docs/content/docs/guides/integrations/ai-sdk.mdx:import { saveChat } from "@/lib/save-chat"; // [!code ++]
apps/docs/content/docs/guides/integrations/ai-sdk.mdx-
apps/docs/content/docs/guides/integrations/ai-sdk.mdx-export const maxDuration = 300;
apps/docs/content/docs/guides/integrations/ai-sdk.mdx-
apps/docs/content/docs/guides/integrations/ai-sdk.mdx-export async function POST(req: Request) {
apps/docs/content/docs/guides/integrations/ai-sdk.mdx:  const { messages, id }: { messages: UIMessage[]; id: string } = await req.json(); // [!code highlight]
apps/docs/content/docs/guides/integrations/ai-sdk.mdx-
apps/docs/content/docs/guides/integrations/ai-sdk.mdx-  const result = streamText({
apps/docs/content/docs/guides/integrations/ai-sdk.mdx-    model: openai("gpt-4o"),
--
apps/docs/content/docs/guides/integrations/ai-sdk.mdx-  });
apps/docs/content/docs/guides/integrations/ai-sdk.mdx-
apps/docs/content/docs/guides/integrations/ai-sdk.mdx-  return result.toUIMessageStreamResponse({
apps/docs/content/docs/guides/integrations/ai-sdk.mdx:    originalMessages: messages, // [!code ++]
apps/docs/content/docs/guides/integrations/ai-sdk.mdx-    onFinish: async ({ messages }) => {
apps/docs/content/docs/guides/integrations/ai-sdk.mdx:      // [!code ++]
apps/docs/content/docs/guides/integrations/ai-sdk.mdx:      await saveChat(messages, id); // [!code ++]
apps/docs/content/docs/guides/integrations/ai-sdk.mdx:    }, // [!code ++]
apps/docs/content/docs/guides/integrations/ai-sdk.mdx-  });
apps/docs/content/docs/guides/integrations/ai-sdk.mdx-}
apps/docs/content/docs/guides/integrations/ai-sdk.mdx-```
--
apps/docs/content/docs/guides/integrations/ai-sdk.mdx-Now, add the logic to create a session with the given `id`:
apps/docs/content/docs/guides/integrations/ai-sdk.mdx-
apps/docs/content/docs/guides/integrations/ai-sdk.mdx-```tsx title="lib/save-chat.ts"
apps/docs/content/docs/guides/integrations/ai-sdk.mdx:import prisma from "./prisma"; // [!code ++]
apps/docs/content/docs/guides/integrations/ai-sdk.mdx-import { UIMessage } from "ai";
apps/docs/content/docs/guides/integrations/ai-sdk.mdx-
apps/docs/content/docs/guides/integrations/ai-sdk.mdx-export async function saveChat(messages: UIMessage[], id: string) {
apps/docs/content/docs/guides/integrations/ai-sdk.mdx-  const session = await prisma.session.upsert({
apps/docs/content/docs/guides/integrations/ai-sdk.mdx:    // [!code ++]
apps/docs/content/docs/guides/integrations/ai-sdk.mdx:    where: { id }, // [!code ++]
apps/docs/content/docs/guides/integrations/ai-sdk.mdx:    update: {}, // [!code ++]
apps/docs/content/docs/guides/integrations/ai-sdk.mdx:    create: { id }, // [!code ++]
apps/docs/content/docs/guides/integrations/ai-sdk.mdx:  }); // [!code ++]
apps/docs/content/docs/guides/integrations/ai-sdk.mdx:  // [!code ++]
apps/docs/content/docs/guides/integrations/ai-sdk.mdx:  if (!session) throw new Error("Session not found"); // [!code ++]
apps/docs/content/docs/guides/integrations/ai-sdk.mdx-}
apps/docs/content/docs/guides/integrations/ai-sdk.mdx-```
apps/docs/content/docs/guides/integrations/ai-sdk.mdx-
--
apps/docs/content/docs/guides/integrations/ai-sdk.mdx-
apps/docs/content/docs/guides/integrations/ai-sdk.mdx-  if (!session) throw new Error("Session not found");
apps/docs/content/docs/guides/integrations/ai-sdk.mdx-
apps/docs/content/docs/guides/integrations/ai-sdk.mdx:  const lastTwoMessages = messages.slice(-2); // [!code ++]
apps/docs/content/docs/guides/integrations/ai-sdk.mdx:  // [!code ++]
apps/docs/content/docs/guides/integrations/ai-sdk.mdx-  for (const msg of lastTwoMessages) {
apps/docs/content/docs/guides/integrations/ai-sdk.mdx:    // [!code ++]
apps/docs/content/docs/guides/integrations/ai-sdk.mdx:    let content = JSON.stringify(msg.parts); // [!code ++]
apps/docs/content/docs/guides/integrations/ai-sdk.mdx-    if (msg.role === "assistant") {
apps/docs/content/docs/guides/integrations/ai-sdk.mdx:      // [!code ++]
apps/docs/content/docs/guides/integrations/ai-sdk.mdx:      const textParts = msg.parts.filter((part) => part.type === "text"); // [!code ++]
apps/docs/content/docs/guides/integrations/ai-sdk.mdx:      content = JSON.stringify(textParts); // [!code ++]
apps/docs/content/docs/guides/integrations/ai-sdk.mdx:    } // [!code ++]
apps/docs/content/docs/guides/integrations/ai-sdk.mdx:    // [!code ++]
apps/docs/content/docs/guides/integrations/ai-sdk.mdx-    await prisma.message.create({
apps/docs/content/docs/guides/integrations/ai-sdk.mdx:      // [!code ++]
apps/docs/content/docs/guides/integrations/ai-sdk.mdx-      data: {
apps/docs/content/docs/guides/integrations/ai-sdk.mdx:        // [!code ++]
apps/docs/content/docs/guides/integrations/ai-sdk.mdx:        role: msg.role === "user" ? "USER" : "ASSISTANT", // [!code ++]
apps/docs/content/docs/guides/integrations/ai-sdk.mdx:        content: content, // [!code ++]
apps/docs/content/docs/guides/integrations/ai-sdk.mdx:        sessionId: session.id, // [!code ++]
apps/docs/content/docs/guides/integrations/ai-sdk.mdx:      }, // [!code ++]
apps/docs/content/docs/guides/integrations/ai-sdk.mdx:    }); // [!code ++]
apps/docs/content/docs/guides/integrations/ai-sdk.mdx:  } // [!code ++]
apps/docs/content/docs/guides/integrations/ai-sdk.mdx-}
apps/docs/content/docs/guides/integrations/ai-sdk.mdx-```
apps/docs/content/docs/guides/integrations/ai-sdk.mdx-
--
apps/docs/content/docs/guides/integrations/ai-sdk.mdx-```tsx title="app/page.tsx"
apps/docs/content/docs/guides/integrations/ai-sdk.mdx-"use client";
apps/docs/content/docs/guides/integrations/ai-sdk.mdx-
apps/docs/content/docs/guides/integrations/ai-sdk.mdx:import { useChat } from "@ai-sdk/react"; // [!code ++]
apps/docs/content/docs/guides/integrations/ai-sdk.mdx:import { useState, useEffect } from "react"; // [!code ++]
apps/docs/content/docs/guides/integrations/ai-sdk.mdx-
apps/docs/content/docs/guides/integrations/ai-sdk.mdx-export default function Chat() {
apps/docs/content/docs/guides/integrations/ai-sdk.mdx:  const [input, setInput] = useState(""); // [!code ++]
apps/docs/content/docs/guides/integrations/ai-sdk.mdx:  const [isLoading, setIsLoading] = useState(true); // [!code ++]
apps/docs/content/docs/guides/integrations/ai-sdk.mdx:  // [!code ++]
apps/docs/content/docs/guides/integrations/ai-sdk.mdx:  const { messages, sendMessage, setMessages } = useChat(); // [!code ++]
apps/docs/content/docs/guides/integrations/ai-sdk.mdx-}
apps/docs/content/docs/guides/integrations/ai-sdk.mdx-```
apps/docs/content/docs/guides/integrations/ai-sdk.mdx-
--
apps/docs/content/docs/guides/integrations/ai-sdk.mdx-  const { messages, sendMessage, setMessages } = useChat();
apps/docs/content/docs/guides/integrations/ai-sdk.mdx-
apps/docs/content/docs/guides/integrations/ai-sdk.mdx-  useEffect(() => {
apps/docs/content/docs/guides/integrations/ai-sdk.mdx:    // [!code ++]
apps/docs/content/docs/guides/integrations/ai-sdk.mdx:    fetch("/api/messages") // [!code ++]
apps/docs/content/docs/guides/integrations/ai-sdk.mdx:      .then((res) => res.json()) // [!code ++]
apps/docs/content/docs/guides/integrations/ai-sdk.mdx-      .then((data) => {
apps/docs/content/docs/guides/integrations/ai-sdk.mdx:        // [!code ++]
apps/docs/content/docs/guides/integrations/ai-sdk.mdx-        if (data.messages && data.messages.length > 0) {
apps/docs/content/docs/guides/integrations/ai-sdk.mdx:          // [!code ++]
apps/docs/content/docs/guides/integrations/ai-sdk.mdx:          setMessages(data.messages); // [!code ++]
apps/docs/content/docs/guides/integrations/ai-sdk.mdx:        } // [!code ++]
apps/docs/content/docs/guides/integrations/ai-sdk.mdx:        setIsLoading(false); // [!code ++]
apps/docs/content/docs/guides/integrations/ai-sdk.mdx:      }) // [!code ++]
apps/docs/content/docs/guides/integrations/ai-sdk.mdx:      .catch(() => setIsLoading(false)); // [!code ++]
apps/docs/content/docs/guides/integrations/ai-sdk.mdx:  }, [setMessages]); // [!code ++]
apps/docs/content/docs/guides/integrations/ai-sdk.mdx-}
apps/docs/content/docs/guides/integrations/ai-sdk.mdx-```
apps/docs/content/docs/guides/integrations/ai-sdk.mdx-
--
apps/docs/content/docs/guides/integrations/ai-sdk.mdx-      .catch(() => setIsLoading(false));
apps/docs/content/docs/guides/integrations/ai-sdk.mdx-  }, [setMessages]);
apps/docs/content/docs/guides/integrations/ai-sdk.mdx-
apps/docs/content/docs/guides/integrations/ai-sdk.mdx:  if (isLoading) { // [!code ++]
apps/docs/content/docs/guides/integrations/ai-sdk.mdx:    return <div className="flex justify-center items-center h-screen">Loading...</div>; // [!code ++]
apps/docs/content/docs/guides/integrations/ai-sdk.mdx:  } // [!code ++]
apps/docs/content/docs/guides/integrations/ai-sdk.mdx: // [!code ++]
apps/docs/content/docs/guides/integrations/ai-sdk.mdx:  return ( // [!code ++]
apps/docs/content/docs/guides/integrations/ai-sdk.mdx:    <div className="flex flex-col w-full max-w-md py-24 mx-auto stretch"> // [!code ++]
apps/docs/content/docs/guides/integrations/ai-sdk.mdx:      {messages.map(message => ( // [!code ++]
apps/docs/content/docs/guides/integrations/ai-sdk.mdx:        <div key={message.id} className={`flex ${message.role === 'user' ? 'justify-end' : 'justify-start'} mb-4`}> // [!code ++]
apps/docs/content/docs/guides/integrations/ai-sdk.mdx:          <div className={`max-w-[80%] rounded-lg px-4 py-3 ${ // [!code ++]
apps/docs/content/docs/guides/integrations/ai-sdk.mdx:            message.role === 'user' // [!code ++]
apps/docs/content/docs/guides/integrations/ai-sdk.mdx:              ? 'bg-neutral-600 text-white' // [!code ++]
apps/docs/content/docs/guides/integrations/ai-sdk.mdx:              : 'bg-neutral-200 dark:bg-neutral-800 text-neutral-900 dark:text-neutral-100' // [!code ++]
apps/docs/content/docs/guides/integrations/ai-sdk.mdx:          }`}> // [!code ++]
apps/docs/content/docs/guides/integrations/ai-sdk.mdx:            <div className="whitespace-pre-wrap"> // [!code ++]
apps/docs/content/docs/guides/integrations/ai-sdk.mdx:              <p className="text-xs font-extralight mb-1 opacity-70">{message.role === 'user' ? 'YOU ' : 'AI '}</p> // [!code ++]
apps/docs/content/docs/guides/integrations/ai-sdk.mdx:              {message.parts.map((part, i) => { // [!code ++]
apps/docs/content/docs/guides/integrations/ai-sdk.mdx:                switch (part.type) { // [!code ++]
apps/docs/content/docs/guides/integrations/ai-sdk.mdx:                  case 'text': // [!code ++]
apps/docs/content/docs/guides/integrations/ai-sdk.mdx:                    return <div key={`${message.id}-${i}`}>{part.text}</div>; // [!code ++]
apps/docs/content/docs/guides/integrations/ai-sdk.mdx:                } // [!code ++]
apps/docs/content/docs/guides/integrations/ai-sdk.mdx:              })} // [!code ++]
apps/docs/content/docs/guides/integrations/ai-sdk.mdx:            </div> // [!code ++]
apps/docs/content/docs/guides/integrations/ai-sdk.mdx:          </div> // [!code ++]
apps/docs/content/docs/guides/integrations/ai-sdk.mdx:        </div> // [!code ++]
apps/docs/content/docs/guides/integrations/ai-sdk.mdx:      ))} // [!code ++]
apps/docs/content/docs/guides/integrations/ai-sdk.mdx-```
apps/docs/content/docs/guides/integrations/ai-sdk.mdx-
apps/docs/content/docs/guides/integrations/ai-sdk.mdx-The message rendering logic handles different message types and applies appropriate styling - user messages appear on the right with a dark background, while AI responses appear on the left with a light background.
--
apps/docs/content/docs/guides/integrations/ai-sdk.mdx-          </div>
apps/docs/content/docs/guides/integrations/ai-sdk.mdx-        </div>
apps/docs/content/docs/guides/integrations/ai-sdk.mdx-      ))}
apps/docs/content/docs/guides/integrations/ai-sdk.mdx:      <form // [!code ++]
apps/docs/content/docs/guides/integrations/ai-sdk.mdx-        onSubmit={(e) => {
apps/docs/content/docs/guides/integrations/ai-sdk.mdx:          // [!code ++]
apps/docs/content/docs/guides/integrations/ai-sdk.mdx:          e.preventDefault(); // [!code ++]
apps/docs/content/docs/guides/integrations/ai-sdk.mdx:          sendMessage({ text: input }); // [!code ++]
apps/docs/content/docs/guides/integrations/ai-sdk.mdx:          setInput(""); // [!code ++]
apps/docs/content/docs/guides/integrations/ai-sdk.mdx:        }} // [!code ++]
apps/docs/content/docs/guides/integrations/ai-sdk.mdx-      >
apps/docs/content/docs/guides/integrations/ai-sdk.mdx-        {" "}
apps/docs/content/docs/guides/integrations/ai-sdk.mdx:        // [!code ++]
apps/docs/content/docs/guides/integrations/ai-sdk.mdx:        <input // [!code ++]
apps/docs/content/docs/guides/integrations/ai-sdk.mdx:          className="fixed dark:bg-zinc-900 bottom-0 w-full max-w-md p-2 mb-8 border border-zinc-300 dark:border-zinc-800 rounded shadow-xl" // [!code ++]
apps/docs/content/docs/guides/integrations/ai-sdk.mdx:          value={input} // [!code ++]
apps/docs/content/docs/guides/integrations/ai-sdk.mdx:          placeholder="Say something..." // [!code ++]
apps/docs/content/docs/guides/integrations/ai-sdk.mdx:          onChange={(e) => setInput(e.currentTarget.value)} // [!code ++]
apps/docs/content/docs/guides/integrations/ai-sdk.mdx-        />{" "}
apps/docs/content/docs/guides/integrations/ai-sdk.mdx:        // [!code ++]
apps/docs/content/docs/guides/integrations/ai-sdk.mdx-      </form>{" "}
apps/docs/content/docs/guides/integrations/ai-sdk.mdx:      // [!code ++]
apps/docs/content/docs/guides/integrations/ai-sdk.mdx-    </div>
apps/docs/content/docs/guides/integrations/ai-sdk.mdx-  );
apps/docs/content/docs/guides/integrations/ai-sdk.mdx-}
--
apps/docs/content/docs/guides/integrations/shopify.mdx-
apps/docs/content/docs/guides/integrations/shopify.mdx-```prisma title="prisma/schema.prisma"
apps/docs/content/docs/guides/integrations/shopify.mdx-generator client {
apps/docs/content/docs/guides/integrations/shopify.mdx:  provider = "prisma-client-js" // [!code --]
apps/docs/content/docs/guides/integrations/shopify.mdx:  provider = "prisma-client" // [!code ++]
apps/docs/content/docs/guides/integrations/shopify.mdx:  output   = "../app/generated/prisma" // [!code ++]
apps/docs/content/docs/guides/integrations/shopify.mdx-}
apps/docs/content/docs/guides/integrations/shopify.mdx-
apps/docs/content/docs/guides/integrations/shopify.mdx-datasource db {
apps/docs/content/docs/guides/integrations/shopify.mdx:  provider = "sqlite" // [!code --]
apps/docs/content/docs/guides/integrations/shopify.mdx:  provider = "postgresql" // [!code ++]
apps/docs/content/docs/guides/integrations/shopify.mdx:  url      = "file:../dev.db" // [!code --]
apps/docs/content/docs/guides/integrations/shopify.mdx-}
apps/docs/content/docs/guides/integrations/shopify.mdx-
apps/docs/content/docs/guides/integrations/shopify.mdx-model Session {
--
apps/docs/content/docs/guides/integrations/shopify.mdx-Create a `prisma.config.ts` file to configure Prisma:
apps/docs/content/docs/guides/integrations/shopify.mdx-
apps/docs/content/docs/guides/integrations/shopify.mdx-```typescript title="prisma.config.ts"
apps/docs/content/docs/guides/integrations/shopify.mdx:import "dotenv/config"; // [!code ++]
apps/docs/content/docs/guides/integrations/shopify.mdx:import { defineConfig, env } from "prisma/config"; // [!code ++]
apps/docs/content/docs/guides/integrations/shopify.mdx:// [!code ++]
apps/docs/content/docs/guides/integrations/shopify.mdx-export default defineConfig({
apps/docs/content/docs/guides/integrations/shopify.mdx:  // [!code ++]
apps/docs/content/docs/guides/integrations/shopify.mdx:  schema: "prisma/schema.prisma", // [!code ++]
apps/docs/content/docs/guides/integrations/shopify.mdx-  migrations: {
apps/docs/content/docs/guides/integrations/shopify.mdx:    // [!code ++]
apps/docs/content/docs/guides/integrations/shopify.mdx:    path: "prisma/migrations", // [!code ++]
apps/docs/content/docs/guides/integrations/shopify.mdx:  }, // [!code ++]
apps/docs/content/docs/guides/integrations/shopify.mdx-  datasource: {
apps/docs/content/docs/guides/integrations/shopify.mdx:    // [!code ++]
apps/docs/content/docs/guides/integrations/shopify.mdx:    url: env("DATABASE_URL"), // [!code ++]
apps/docs/content/docs/guides/integrations/shopify.mdx:  }, // [!code ++]
apps/docs/content/docs/guides/integrations/shopify.mdx:}); // [!code ++]
apps/docs/content/docs/guides/integrations/shopify.mdx-```
apps/docs/content/docs/guides/integrations/shopify.mdx-
apps/docs/content/docs/guides/integrations/shopify.mdx-:::note
--
apps/docs/content/docs/guides/integrations/shopify.mdx-  // ... existing model
apps/docs/content/docs/guides/integrations/shopify.mdx-}
apps/docs/content/docs/guides/integrations/shopify.mdx-
apps/docs/content/docs/guides/integrations/shopify.mdx:model ProductNote { // [!code ++]
apps/docs/content/docs/guides/integrations/shopify.mdx:  id         String   `@id` `@default`(uuid()) // [!code ++]
apps/docs/content/docs/guides/integrations/shopify.mdx:  productGid String // [!code ++]
apps/

... [stdout truncated: output exceeded 50000 characters (328294 total). Please modify your command to reduce output size, for example by:
- Using grep/rg to filter results
- Using head/tail to limit lines
- Using --max-count flag with grep/rg
- Processing output with awk/sed to extract only needed information]

Fumadocs code annotation syntax rendering behavior [!code]


In Fumadocs, the // [!code ...] markers inside fenced code blocks are Shiki “notation” annotations (enabled via Fumadocs’ Shiki transformers support) that don’t render as literal text; instead they change how the code block is styled/rendered. For example: // [!code highlight] marks a line as highlighted, // [!code focus] focuses a line, // [!code ++] / // [!code --] apply diff add/remove styling, and // [!code word:...] highlights matching words on subsequent lines. Fumadocs shows these in its Markdown guide, and the underlying Shiki transformers implement them by adding CSS classes to the generated <span class="line ..."> (and flags like has-highlighted / has-focused / has-diff on the outer <pre>). [1] [2] [3]

If you want to show the notation literally, you generally need to escape it as [\!code ...] (so it won’t be interpreted as notation); Shiki also provides a transformer that can “unescape” [\!code ...] back to [!code ...] to avoid showing the escaped form when your pipeline expects notation. [3]


Escape or nest the .env annotation example so readers can see the literal syntax.

This section teaches contributors how to write Fumadocs annotations for .env files, but the example itself uses live # [!code --] and # [!code ++] markers. When rendered, Fumadocs transforms these markers into visual diff styling—readers won't see the literal text they need to type. Either escape the markers as [\!code --] / [\!code ++], wrap the example in an MDX fence, or show a raw text block before a styled example.

Example approach
To show `.env` file changes, use bash comments with Fumadocs annotations:

````bash
DATABASE_URL="postgresql://user:password@localhost:5432/mydb" # [!code --]

DATABASE_URL="postgresql://user:password@db.example.com:5432/mydb" # [!code ++]

This renders as:

DATABASE_URL="postgresql://user:password@localhost:5432/mydb" # [!code --]

DATABASE_URL="postgresql://user:password@db.example.com:5432/mydb" # [!code ++]
</details>

<details>
<summary>🤖 Prompt for AI Agents</summary>

```
Verify each finding against the current code and only fix it if needed.

In `@apps/docs/content/docs/guides/making-guides.mdx` around lines 181 - 187, The
example in making-guides.mdx uses live Fumadocs markers "# [!code --]" and "#
[!code ++]" which will be rendered instead of shown; update the example so
readers see the literal annotation syntax by either escaping the markers (e.g.,
use "[\!code --]" and "[\!code ++]"), wrapping the example inside a raw/escaped
MDX fence (a code block showing the literal text), or adding a raw text block
before the styled example; locate the lines containing the literal strings "#
[!code --]" and "# [!code ++]" and replace them with the escaped or fenced
version so the rendered docs display the annotation text instead of applying it.
```

</details>

<!-- fingerprinting:phantom:medusa:grasshopper -->

<!-- This is an auto-generated comment by CodeRabbit -->

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant