docs: fix highlighting in text and dotenv code blocks#7660
docs: fix highlighting in text and dotenv code blocks#7660AmanVarshney01 wants to merge 5 commits intomainfrom
Conversation
|
Note Reviews pausedIt 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 Use the following commands to manage reviews:
Use the checkboxes below for quick actions:
WalkthroughFormatting-only updates across many MDX docs: code-fence language specifiers changed (mostly to Changes
Estimated code review effort🎯 2 (Simple) | ⏱️ ~10 minutes 🚥 Pre-merge checks | ✅ 3✅ Passed checks (3 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. 📝 Coding Plan
Comment |
|
The latest updates on your projects. Learn more about Argos notifications ↗︎
|
There was a problem hiding this comment.
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
📒 Files selected for processing (37)
apps/docs/content/docs.v6/(index)/prisma-orm/quickstart/mysql.mdxapps/docs/content/docs.v6/(index)/prisma-orm/quickstart/sql-server.mdxapps/docs/content/docs.v6/accelerate/getting-started.mdxapps/docs/content/docs.v6/guides/authjs-nextjs.mdxapps/docs/content/docs.v6/guides/betterauth-astro.mdxapps/docs/content/docs.v6/guides/betterauth-nextjs.mdxapps/docs/content/docs.v6/guides/bun.mdxapps/docs/content/docs.v6/guides/clerk-astro.mdxapps/docs/content/docs.v6/guides/clerk-nextjs.mdxapps/docs/content/docs.v6/guides/multiple-databases.mdxapps/docs/content/docs.v6/guides/turborepo.mdxapps/docs/content/docs.v6/orm/more/ai-tools/windsurf.mdxapps/docs/content/docs.v6/orm/overview/databases/neon.mdxapps/docs/content/docs.v6/orm/overview/databases/supabase.mdxapps/docs/content/docs.v6/orm/prisma-client/deployment/serverless/deploy-to-aws-lambda.mdxapps/docs/content/docs.v6/orm/prisma-client/setup-and-configuration/databases-connections/index.mdxapps/docs/content/docs.v6/orm/prisma-client/setup-and-configuration/databases-connections/pgbouncer.mdxapps/docs/content/docs.v6/orm/prisma-schema/overview/location.mdxapps/docs/content/docs/(index)/prisma-orm/add-to-existing-project/mysql.mdxapps/docs/content/docs/(index)/prisma-orm/add-to-existing-project/sql-server.mdxapps/docs/content/docs/(index)/prisma-orm/quickstart/mysql.mdxapps/docs/content/docs/(index)/prisma-orm/quickstart/sql-server.mdxapps/docs/content/docs/accelerate/getting-started.mdxapps/docs/content/docs/ai/tools/windsurf.mdxapps/docs/content/docs/guides/authentication/authjs/nextjs.mdxapps/docs/content/docs/guides/authentication/better-auth/astro.mdxapps/docs/content/docs/guides/authentication/better-auth/nextjs.mdxapps/docs/content/docs/guides/authentication/clerk/astro.mdxapps/docs/content/docs/guides/authentication/clerk/nextjs.mdxapps/docs/content/docs/guides/database/multiple-databases.mdxapps/docs/content/docs/guides/deployment/docker.mdxapps/docs/content/docs/guides/making-guides.mdxapps/docs/content/docs/guides/runtimes/bun.mdxapps/docs/content/docs/guides/runtimes/deno.mdxapps/docs/content/docs/orm/prisma-client/deployment/deploy-migrations-from-a-local-environment.mdxapps/docs/content/docs/orm/prisma-client/deployment/edge/deploy-to-vercel.mdxapps/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
...ocs/content/docs/orm/prisma-client/deployment/deploy-migrations-from-a-local-environment.mdx
Outdated
Show resolved
Hide resolved
There was a problem hiding this comment.
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:
- Using only the inline markers (since the text says "use bash comments for the Fumadocs annotations"), or
- 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
📒 Files selected for processing (35)
apps/docs/content/docs.v6/(index)/prisma-orm/quickstart/mysql.mdxapps/docs/content/docs.v6/(index)/prisma-orm/quickstart/sql-server.mdxapps/docs/content/docs.v6/accelerate/getting-started.mdxapps/docs/content/docs.v6/guides/authjs-nextjs.mdxapps/docs/content/docs.v6/guides/betterauth-astro.mdxapps/docs/content/docs.v6/guides/betterauth-nextjs.mdxapps/docs/content/docs.v6/guides/bun.mdxapps/docs/content/docs.v6/guides/clerk-astro.mdxapps/docs/content/docs.v6/guides/clerk-nextjs.mdxapps/docs/content/docs.v6/guides/multiple-databases.mdxapps/docs/content/docs.v6/guides/turborepo.mdxapps/docs/content/docs.v6/orm/overview/databases/neon.mdxapps/docs/content/docs.v6/orm/overview/databases/supabase.mdxapps/docs/content/docs.v6/orm/prisma-client/deployment/serverless/deploy-to-aws-lambda.mdxapps/docs/content/docs.v6/orm/prisma-client/setup-and-configuration/databases-connections/index.mdxapps/docs/content/docs.v6/orm/prisma-client/setup-and-configuration/databases-connections/pgbouncer.mdxapps/docs/content/docs/(index)/prisma-orm/add-to-existing-project/mysql.mdxapps/docs/content/docs/(index)/prisma-orm/add-to-existing-project/sql-server.mdxapps/docs/content/docs/(index)/prisma-orm/quickstart/mysql.mdxapps/docs/content/docs/(index)/prisma-orm/quickstart/sql-server.mdxapps/docs/content/docs/accelerate/getting-started.mdxapps/docs/content/docs/guides/authentication/authjs/nextjs.mdxapps/docs/content/docs/guides/authentication/better-auth/astro.mdxapps/docs/content/docs/guides/authentication/better-auth/nextjs.mdxapps/docs/content/docs/guides/authentication/clerk/astro.mdxapps/docs/content/docs/guides/authentication/clerk/nextjs.mdxapps/docs/content/docs/guides/database/multiple-databases.mdxapps/docs/content/docs/guides/deployment/docker.mdxapps/docs/content/docs/guides/making-guides.mdxapps/docs/content/docs/guides/runtimes/bun.mdxapps/docs/content/docs/guides/runtimes/deno.mdxapps/docs/content/docs/orm/prisma-client/deployment/deploy-migrations-from-a-local-environment.mdxapps/docs/content/docs/orm/prisma-client/deployment/edge/deploy-to-vercel.mdxapps/docs/content/docs/orm/prisma-client/setup-and-configuration/databases-connections/index.mdxapps/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
| ```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 ++] | ||
| ``` |
There was a problem hiding this comment.
Redundant highlighting: both fence metadata and inline marker are applied.
Line 49 is marked as an addition twice:
highlight=2;addin the fence metadata (line 47)# [!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.
There was a problem hiding this comment.
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
📒 Files selected for processing (21)
apps/docs/content/docs.v6/accelerate/getting-started.mdxapps/docs/content/docs.v6/guides/betterauth-astro.mdxapps/docs/content/docs.v6/guides/betterauth-nextjs.mdxapps/docs/content/docs.v6/guides/clerk-nextjs.mdxapps/docs/content/docs.v6/orm/overview/databases/neon.mdxapps/docs/content/docs.v6/orm/overview/databases/supabase.mdxapps/docs/content/docs.v6/orm/overview/databases/turso.mdxapps/docs/content/docs.v6/orm/prisma-client/deployment/deploy-migrations-from-a-local-environment.mdxapps/docs/content/docs.v6/orm/prisma-client/deployment/edge/deploy-to-vercel.mdxapps/docs/content/docs.v6/orm/prisma-client/deployment/serverless/deploy-to-aws-lambda.mdxapps/docs/content/docs.v6/orm/prisma-client/setup-and-configuration/databases-connections/index.mdxapps/docs/content/docs.v6/orm/prisma-client/setup-and-configuration/databases-connections/pgbouncer.mdxapps/docs/content/docs/accelerate/getting-started.mdxapps/docs/content/docs/guides/authentication/better-auth/astro.mdxapps/docs/content/docs/guides/authentication/better-auth/nextjs.mdxapps/docs/content/docs/guides/authentication/clerk/nextjs.mdxapps/docs/content/docs/guides/making-guides.mdxapps/docs/content/docs/orm/prisma-client/deployment/deploy-migrations-from-a-local-environment.mdxapps/docs/content/docs/orm/prisma-client/deployment/edge/deploy-to-vercel.mdxapps/docs/content/docs/orm/prisma-client/setup-and-configuration/databases-connections/index.mdxapps/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
| 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 ++] | ||
| ``` |
There was a problem hiding this comment.
❓ 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 -5Repository: 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 -iRepository: 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=20Repository: 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 3Repository: 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 -->
Summary
[!code ...]markers to Fumadocs-supported fence metadatatextanddotenvcode blocksguides/making-guides.mdxVerification
[!code ...]markers left insidetextordotenvfencespnpm --dir apps/docs types:checkNotes
[!code ++]/[!code --]markers remain in normal code fences where Fumadocs supports themSummary by CodeRabbit