diff --git a/.github/workflows/mxbai.yml b/.github/workflows/mxbai.yml
index af8e9fec68..c2ff5cfc76 100644
--- a/.github/workflows/mxbai.yml
+++ b/.github/workflows/mxbai.yml
@@ -34,5 +34,5 @@ jobs:
- name: Upload Docs
run: pnpm dlx @mixedbread/cli store sync "${MIXEDBREAD_VECTOR_STORE_ID}" "apps/docs/content/docs/**/*.mdx" --yes --strategy fast
env:
- MIXEDBREAD_API_KEY: ${{ secrets.MIXEDBREAD_API_KEY }}
+ MXBAI_API_KEY: ${{ secrets.MIXEDBREAD_API_KEY }}
MIXEDBREAD_VECTOR_STORE_ID: ${{ secrets.MIXEDBREAD_VECTOR_STORE_ID }}
diff --git a/apps/docs/content/docs.v6/orm/more/internals/engines.mdx b/apps/docs/content/docs.v6/orm/more/internals/engines.mdx
index 03116dd7c1..d4ba0211fd 100644
--- a/apps/docs/content/docs.v6/orm/more/internals/engines.mdx
+++ b/apps/docs/content/docs.v6/orm/more/internals/engines.mdx
@@ -54,7 +54,7 @@ A Prisma engine is the **direct interface to the database**, any higher-level in
As an example, when using Rust-based engines, Prisma Client connects to the query engine in order to read and write data in a database:
-
+
### Using custom engine libraries or binaries
@@ -188,7 +188,7 @@ This section applies **only to Rust-based engines**. Prisma ORM v7 defaults to t
When using Rust-based engines, Prisma Client loads the query engine as a [Node-API library](https://nodejs.org/api/n-api.html) by default. You can alternatively [configure Prisma to use the query engine compiled as an executable binary](#configuring-the-query-engine), which is run as a sidecar process alongside your application.
The Node-API library approach is recommended since it reduces the communication overhead between Prisma Client and the query engine.
-
+
The query engine is started when the first Prisma Client query is invoked or when the [`$connect()`](/v6/orm/prisma-client/setup-and-configuration/databases-connections/connection-management) method is called on your `PrismaClient` instance. Once the query engine is started, it creates a [connection pool](/v6/orm/prisma-client/setup-and-configuration/databases-connections/connection-pool) and manages the physical connections to the database. From that point onwards, Prisma Client is ready to send [queries](/v6/orm/prisma-client/queries/crud) to the database (e.g. `findUnique()`, `findMany`, `create`, ...).
@@ -208,7 +208,7 @@ The following diagram depicts a "typical flow":
1. The query engine closes the database connections
1. The query engine is stopped
-
+
## Responsibilities of the query engine
diff --git a/apps/docs/content/docs.v6/orm/overview/databases/database-drivers.mdx b/apps/docs/content/docs.v6/orm/overview/databases/database-drivers.mdx
index 0391fc680a..8f6fb1a642 100644
--- a/apps/docs/content/docs.v6/orm/overview/databases/database-drivers.mdx
+++ b/apps/docs/content/docs.v6/orm/overview/databases/database-drivers.mdx
@@ -29,7 +29,7 @@ You can [read about the performance and DX improvements](https://www.prisma.io/b
:::
-
+
## Driver adapters
@@ -37,7 +37,7 @@ Prisma Client can connect and run queries against your database using JavaScript
Prisma Client will use the Query Engine to transform the Prisma Client query to SQL and run the generated SQL queries via the JavaScript database driver.
-
+
There are two different types of driver adapters:
diff --git a/apps/docs/content/docs.v6/orm/overview/databases/mongodb.mdx b/apps/docs/content/docs.v6/orm/overview/databases/mongodb.mdx
index 4037804397..c77af5a3b2 100644
--- a/apps/docs/content/docs.v6/orm/overview/databases/mongodb.mdx
+++ b/apps/docs/content/docs.v6/orm/overview/databases/mongodb.mdx
@@ -347,7 +347,7 @@ The MongoDB database connector uses transactions to support nested writes. Trans
The MongoDB connection URL can be configured in different ways depending on how you are hosting your database. The standard configuration is made up of the following components:
-
+
#### Base URL and path
diff --git a/apps/docs/content/docs.v6/orm/overview/databases/mysql.mdx b/apps/docs/content/docs.v6/orm/overview/databases/mysql.mdx
index e3460b218d..579f434a1a 100644
--- a/apps/docs/content/docs.v6/orm/overview/databases/mysql.mdx
+++ b/apps/docs/content/docs.v6/orm/overview/databases/mysql.mdx
@@ -77,7 +77,7 @@ const prisma = new PrismaClient({ adapter });
Here's an overview of the components needed for a MySQL connection URL:
-
+
#### Base URL and path
diff --git a/apps/docs/content/docs.v6/orm/overview/databases/postgresql.mdx b/apps/docs/content/docs.v6/orm/overview/databases/postgresql.mdx
index 0ef5308e4b..37c31c28ee 100644
--- a/apps/docs/content/docs.v6/orm/overview/databases/postgresql.mdx
+++ b/apps/docs/content/docs.v6/orm/overview/databases/postgresql.mdx
@@ -97,7 +97,7 @@ const adapter = new PrismaPg({ connectionString }, { schema: "myPostgresSchema"
Prisma ORM follows the connection URL format specified by [PostgreSQL's official guidelines](https://www.postgresql.org/docs/current/libpq-connect.html#LIBPQ-CONNSTRING), but does not support all arguments and includes additional arguments such as `schema`. Here's an overview of the components needed for a PostgreSQL connection URL:
-
+
#### Base URL and path
diff --git a/apps/docs/content/docs.v6/orm/overview/databases/turso.mdx b/apps/docs/content/docs.v6/orm/overview/databases/turso.mdx
index ad4e1586d2..d0ce47435f 100644
--- a/apps/docs/content/docs.v6/orm/overview/databases/turso.mdx
+++ b/apps/docs/content/docs.v6/orm/overview/databases/turso.mdx
@@ -149,21 +149,21 @@ Turso supports [embedded replicas](https://turso.tech/blog/introducing-embedded-
When your app initially establishes a connection to your database, the primary database will fulfill the query:
-
+
Turso will (1) create an embedded replica inside your application and (2) copy data from your primary database to the replica so it is locally available:
-
+
The embedded replica will fulfill subsequent read queries. The libSQL client provides a [`sync()`](https://docs.turso.tech/sdk/ts/reference#manual-sync) method which you can invoke to ensure the embedded replica's data remains fresh.
-
+
With embedded replicas, this setup guarantees a responsive application, because the data will be readily available locally and faster to access.
Like a read replica setup you may be familiar with, write operations are forwarded to the primary remote database and executed before being propagated to all embedded replicas.
-
+
1. Write operations propagation are forwarded to the database.
1. Database responds to the server with the updates from 1.
diff --git a/apps/docs/content/docs.v6/orm/overview/introduction/why-prisma.mdx b/apps/docs/content/docs.v6/orm/overview/introduction/why-prisma.mdx
index f45701b6d2..1f605dabd4 100644
--- a/apps/docs/content/docs.v6/orm/overview/introduction/why-prisma.mdx
+++ b/apps/docs/content/docs.v6/orm/overview/introduction/why-prisma.mdx
@@ -31,7 +31,7 @@ The remaining parts of this page discuss how Prisma ORM compares to existing dat
The main problem with the database tools that currently exist in the Node.js and TypeScript ecosystem is that they require a major tradeoff between _productivity_ and _control_.
-
+
### Raw SQL: Full control, low productivity
@@ -90,4 +90,4 @@ Developers should be able to ask for the data they need instead of having to wor
Prisma ORM's main goal is to make application developers more productive when working with databases. Considering the tradeoff between productivity and control again, this is how Prisma ORM fits in:
-
+
diff --git a/apps/docs/content/docs.v6/orm/overview/prisma-in-your-stack/is-prisma-an-orm.mdx b/apps/docs/content/docs.v6/orm/overview/prisma-in-your-stack/is-prisma-an-orm.mdx
index 4f6528555e..1a1c70f314 100644
--- a/apps/docs/content/docs.v6/orm/overview/prisma-in-your-stack/is-prisma-an-orm.mdx
+++ b/apps/docs/content/docs.v6/orm/overview/prisma-in-your-stack/is-prisma-an-orm.mdx
@@ -59,7 +59,7 @@ In reality, not all Data Mapper ORMs adhere to this pattern strictly. For exampl
Given the following `User` table in the database:
-
+
This is what the corresponding entity class would look like:
@@ -263,7 +263,7 @@ Here's a break down of the example above:
The `User` / `Post` relation can be visualized with the following diagram:
-
+
At a Prisma ORM level, the `User` / `Post` relation is made up of:
diff --git a/apps/docs/content/docs.v6/orm/overview/prisma-in-your-stack/rest.mdx b/apps/docs/content/docs.v6/orm/overview/prisma-in-your-stack/rest.mdx
index a874b5a3ac..1d5894c598 100644
--- a/apps/docs/content/docs.v6/orm/overview/prisma-in-your-stack/rest.mdx
+++ b/apps/docs/content/docs.v6/orm/overview/prisma-in-your-stack/rest.mdx
@@ -8,7 +8,7 @@ metaDescription: This page gives an overview of the most important things when b
When building REST APIs, Prisma Client can be used inside your _route controllers_ to send databases queries.
-
+
## Supported libraries
diff --git a/apps/docs/content/docs.v6/orm/prisma-client/deployment/serverless/deploy-to-netlify.mdx b/apps/docs/content/docs.v6/orm/prisma-client/deployment/serverless/deploy-to-netlify.mdx
index f007b4f6b5..3dfbe9bc54 100644
--- a/apps/docs/content/docs.v6/orm/prisma-client/deployment/serverless/deploy-to-netlify.mdx
+++ b/apps/docs/content/docs.v6/orm/prisma-client/deployment/serverless/deploy-to-netlify.mdx
@@ -92,10 +92,10 @@ If you are storing your database connection string and other environment variabl
netlify open --admin
```
2. Click **Site settings**:
- 
+ 
3. Navigate to **Build & deploy** in the sidebar on the left and select **Environment**.
4. Click **Edit variables** and create a variable with the key `DATABASE_URL` and set its value to your database connection string.
- 
+ 
5. Click **Save**.
diff --git a/apps/docs/content/docs.v6/orm/prisma-client/deployment/serverless/deploy-to-vercel.mdx b/apps/docs/content/docs.v6/orm/prisma-client/deployment/serverless/deploy-to-vercel.mdx
index 629da446ec..a4444a27d2 100644
--- a/apps/docs/content/docs.v6/orm/prisma-client/deployment/serverless/deploy-to-vercel.mdx
+++ b/apps/docs/content/docs.v6/orm/prisma-client/deployment/serverless/deploy-to-vercel.mdx
@@ -119,7 +119,7 @@ To prevent this, use a _second_ hosted database to handle preview deployments. O
3. Add an environment variable with a key of `DATABASE_URL` and select only the **Preview** environment option:
- 
+ 
4. Set the value to the connection string of your second database:
diff --git a/apps/docs/content/docs.v6/orm/prisma-client/deployment/traditional/deploy-to-heroku.mdx b/apps/docs/content/docs.v6/orm/prisma-client/deployment/traditional/deploy-to-heroku.mdx
index 1ddd27f110..2af2ca2af1 100644
--- a/apps/docs/content/docs.v6/orm/prisma-client/deployment/traditional/deploy-to-heroku.mdx
+++ b/apps/docs/content/docs.v6/orm/prisma-client/deployment/traditional/deploy-to-heroku.mdx
@@ -17,7 +17,7 @@ The application has the following components:
- **Backend**: Node.js REST API built with Express.js with resource endpoints that use Prisma Client to handle database operations against a PostgreSQL database (e.g., hosted on Heroku).
- **Frontend**: Static HTML page to interact with the API.
-
+
The focus of this guide is showing how to deploy projects using Prisma ORM to Heroku. The starting point will be the [Prisma Heroku example](https://github.com/prisma/prisma-examples/tree/latest/deployment-platforms/heroku), which contains an Express.js server with a couple of preconfigured REST endpoints and a simple frontend.
@@ -230,7 +230,7 @@ You can use the static frontend to interact with the API you deployed via the pr
Open up the preview URL in your browser, the URL should like this: `https://APP_NAME.herokuapp.com`. You should see the following:
-
+
The buttons allow you to make requests to the REST API and view the response:
diff --git a/apps/docs/content/docs.v6/orm/prisma-client/deployment/traditional/deploy-to-koyeb.mdx b/apps/docs/content/docs.v6/orm/prisma-client/deployment/traditional/deploy-to-koyeb.mdx
index 0585d93b36..bbd4ecef72 100644
--- a/apps/docs/content/docs.v6/orm/prisma-client/deployment/traditional/deploy-to-koyeb.mdx
+++ b/apps/docs/content/docs.v6/orm/prisma-client/deployment/traditional/deploy-to-koyeb.mdx
@@ -18,7 +18,7 @@ The application has the following components:
- **Backend**: Node.js REST API built with Express.js with resource endpoints that use Prisma Client to handle database operations against a PostgreSQL database (e.g., hosted on Heroku).
- **Frontend**: Static HTML page to interact with the API.
-
+
The focus of this guide is showing how to deploy projects using Prisma ORM to Koyeb. The starting point will be the [Prisma Koyeb example](https://github.com/koyeb/example-prisma), which contains an Express.js server with a couple of preconfigured REST endpoints and a simple frontend.
@@ -133,7 +133,7 @@ Last, give your application a name and click the **Create App** button.
**Checkpoint:** Open the deployed app by clicking on the screenshot of the deployed app. Once the page loads, click on the **Check API status** button, which should return: `{"up":true}`
-
+
Congratulations! You have successfully deployed the app to Koyeb.
@@ -147,7 +147,7 @@ You can use the static frontend to interact with the API you deployed via the pr
Open up the preview URL in your browser, the URL should like this: `https://APP_NAME-ORG_NAME.koyeb.app`. You should see the following:
-
+
The buttons allow you to make requests to the REST API and view the response:
diff --git a/apps/docs/content/docs.v6/orm/prisma-client/deployment/traditional/deploy-to-railway.mdx b/apps/docs/content/docs.v6/orm/prisma-client/deployment/traditional/deploy-to-railway.mdx
index ca3b7187c3..ebdbbace79 100644
--- a/apps/docs/content/docs.v6/orm/prisma-client/deployment/traditional/deploy-to-railway.mdx
+++ b/apps/docs/content/docs.v6/orm/prisma-client/deployment/traditional/deploy-to-railway.mdx
@@ -39,7 +39,7 @@ Your application is now deploying to Railway, but it won't properly run without
In the next section, you'll configure a database and set the `DATABASE_URL` environment variable in Railway.
-
+
## Configure your database
@@ -59,7 +59,7 @@ You'll need a Prisma Postgres connection string. There are two ways to obtain on
5. Paste your database connection string as the value
6. Click **Deploy** to redeploy your application with the new environment variable
-
+
### 3. Access your application
@@ -69,7 +69,7 @@ Once the deployment completes with the database URL configured:
2. Under **Networking**, click **Generate Domain**
3. Your application will be available at the generated URL
-
+
Go to the generated URL and you'll see your deployed app!
@@ -79,7 +79,7 @@ If you used the example project, you should see three api endpoints already set
- Load feed (`/api/feed`)
- Seed data (`/api/seed`)
-
+
If you see any errors:
diff --git a/apps/docs/content/docs.v6/orm/prisma-client/deployment/traditional/deploy-to-sevalla.mdx b/apps/docs/content/docs.v6/orm/prisma-client/deployment/traditional/deploy-to-sevalla.mdx
index 024f0176ae..4af652a0ce 100644
--- a/apps/docs/content/docs.v6/orm/prisma-client/deployment/traditional/deploy-to-sevalla.mdx
+++ b/apps/docs/content/docs.v6/orm/prisma-client/deployment/traditional/deploy-to-sevalla.mdx
@@ -32,15 +32,15 @@ To get started, all you need is:
First, create a new application on your Sevalla dashboard. Click **Applications** on the sidebar and then click the **Create an app** button, as shown below.
-
+
Next, select your Git repository. Sevalla supports deploying from both private and public repositories. If you're using our example project, there's no need to fork — simply enter the URL `https://github.com/sevalla-templates/express-prisma-demo`.
-
+
Choose the appropriate branch (usually `main` or `master`), set your application's name, select the desired deployment region, and pick your pod size. (You can start with 0.5 CPU / 1GB RAM using your free credits)
-
+
Click **Create**, but skip the deploy step for now, so it does not fail since we have not added the database.
@@ -48,7 +48,7 @@ Click **Create**, but skip the deploy step for now, so it does not fail since we
On your Sevalla dashboard, click **Databases** \> **Add database**. Select **PostgreSQL** (or your preferred configured database type), and then provide a database name, username, and password, or simply use the default generated details.
-
+
Next, give the database a recognizable name for easy identification within your Sevalla dashboard. Ensure you select the **same region** as your application, choose an appropriate database size, and click **Create**.
@@ -56,7 +56,7 @@ Once your database has been created, scroll down to the **Connected Applications
Select the application you created previously and enable "Add environment variables". Make sure the variable name is set to `DATABASE_URL` (if it defaults to `DB_URL`, change it accordingly).
-
+
Finally, click **Add connection**. This securely links your application to your database and configures the necessary environment variable.
@@ -78,10 +78,10 @@ npx prisma db seed
This is what the web terminal looks like:
-
+
Once this is done, you can manage and interact with your database directly via Sevalla's built-in interactive studio. As shown below, we can see the seeded data:
-
+
Congratulations\! You've successfully deployed a Node.js application using Prisma ORM to Sevalla. Your app and database are now connected, secure, and production-ready\!
diff --git a/apps/docs/content/docs.v6/orm/prisma-client/observability-and-logging/opentelemetry-tracing.mdx b/apps/docs/content/docs.v6/orm/prisma-client/observability-and-logging/opentelemetry-tracing.mdx
index e1fb9c36a3..ccfe1a46a3 100644
--- a/apps/docs/content/docs.v6/orm/prisma-client/observability-and-logging/opentelemetry-tracing.mdx
+++ b/apps/docs/content/docs.v6/orm/prisma-client/observability-and-logging/opentelemetry-tracing.mdx
@@ -29,7 +29,7 @@ When you enable tracing, Prisma Client outputs the following:
The number and type of spans in a trace depends on the type of operation the trace covers, but an example is as follows:
-
+
You can [send tracing output to the console](#send-tracing-output-to-the-console), or analyze it in any OpenTelemetry-compatible tracing system, such as [Jaeger](https://www.jaegertracing.io/), [Honeycomb](https://www.honeycomb.io/distributed-tracing) and [Datadog](https://www.datadoghq.com/). On this page, we give an example of how to send tracing output to Jaeger, which you can [run locally](#visualize-traces-with-jaeger).
@@ -239,7 +239,7 @@ You can find a complete example that includes metrics in [this sample applicatio
The following screenshot shows an example trace visualization:
-
+
To run Jaeger locally, use the following [Docker](https://www.docker.com/) command:
diff --git a/apps/docs/content/docs.v6/orm/prisma-client/setup-and-configuration/databases-connections/index.mdx b/apps/docs/content/docs.v6/orm/prisma-client/setup-and-configuration/databases-connections/index.mdx
index 08414e118a..f3307c7cc2 100644
--- a/apps/docs/content/docs.v6/orm/prisma-client/setup-and-configuration/databases-connections/index.mdx
+++ b/apps/docs/content/docs.v6/orm/prisma-client/setup-and-configuration/databases-connections/index.mdx
@@ -142,11 +142,11 @@ In a serverless environment, each function creates **its own instance** of `Pris
Consider the following example, where a single AWS Lambda function uses `PrismaClient` to connect to a database. The `connection_limit` is **3**:
-
+
A traffic spike causes AWS Lambda to spawn two additional lambdas to handle the increased load. Each lambda creates an instance of `PrismaClient`, each with a `connection_limit` of **3**, which results in a maximum of **9** connections to the database:
-
+
200 _concurrent functions_ (and therefore 600 possible connections) responding to a traffic spike 📈 can exhaust the database connection limit very quickly. Furthermore, any functions that are **paused** keep their connections open by default and block them from being used by another function.
diff --git a/apps/docs/content/docs.v6/orm/prisma-client/setup-and-configuration/generating-prisma-client.mdx b/apps/docs/content/docs.v6/orm/prisma-client/setup-and-configuration/generating-prisma-client.mdx
index 5a6730408c..11231e6120 100644
--- a/apps/docs/content/docs.v6/orm/prisma-client/setup-and-configuration/generating-prisma-client.mdx
+++ b/apps/docs/content/docs.v6/orm/prisma-client/setup-and-configuration/generating-prisma-client.mdx
@@ -86,7 +86,7 @@ To generate and instantiate Prisma Client:
Here is a graphical illustration of the typical workflow for generation of Prisma Client:
-
+
## The location of Prisma Client
@@ -179,6 +179,6 @@ import { PrismaClient } from "@prisma/client";
Prisma Client is generated from your Prisma schema and is unique to your project. Each time you change the schema (for example, by performing a [schema migration](/v6/orm/prisma-migrate/getting-started)) and run `prisma generate`, Prisma Client's code changes:
-
+
The `.prisma` folder is unaffected by [pruning](https://docs.npmjs.com/cli/prune.html) in Node.js package managers.
diff --git a/apps/docs/content/docs.v6/orm/prisma-client/testing/integration-testing.mdx b/apps/docs/content/docs.v6/orm/prisma-client/testing/integration-testing.mdx
index 86404a7479..da146b70b5 100644
--- a/apps/docs/content/docs.v6/orm/prisma-client/testing/integration-testing.mdx
+++ b/apps/docs/content/docs.v6/orm/prisma-client/testing/integration-testing.mdx
@@ -93,7 +93,7 @@ The guide uses a singleton pattern for Prisma Client setup. Refer to the [single
## Add Docker to your project
-
+
With Docker and Docker compose both installed on your machine you can use them in your project.
diff --git a/apps/docs/content/docs.v6/orm/prisma-migrate/understanding-prisma-migrate/mental-model.mdx b/apps/docs/content/docs.v6/orm/prisma-migrate/understanding-prisma-migrate/mental-model.mdx
index 9a0622b02b..6774c2fe51 100644
--- a/apps/docs/content/docs.v6/orm/prisma-migrate/understanding-prisma-migrate/mental-model.mdx
+++ b/apps/docs/content/docs.v6/orm/prisma-migrate/understanding-prisma-migrate/mental-model.mdx
@@ -22,11 +22,11 @@ The two main schema migration patterns are:
- **Model/Entity-first migration:** with this pattern, you define the structure of the database schema with code and then use a migration tool to generate the SQL, for example, for syncing your application and database schema.
-
+
- **Database-first migration:** with this pattern, you define the structure of your database and apply it to your database using SQL. You then _introspect_ the database to generate the code that describes the structure of your database to sync your application and database schema.
-
+
:::info
@@ -65,7 +65,7 @@ The workflow when using Prisma Migrate in your project would be iterative and lo
1. Merge your application code from the feature branch to your main branch
1. Use a CI system (e.g. GitHub Actions) to sync your Prisma schema and migration history with your production database using `prisma migrate deploy`
-
+
## How Prisma Migrate tracks the migration state
@@ -76,7 +76,7 @@ Prisma Migrate uses the following pieces of state to track the state of your dat
- **Migrations table**: `prisma_migrations` table in the database that stores metadata for migrations that have been applied to the database.
- **Database schema**: the state of the database.
-
+
## Requirements when working with Prisma Migrate
@@ -95,7 +95,7 @@ This section describes how you can evolve your database schema in different envi
The [`prisma migrate dev`](/v6/orm/reference/prisma-cli-reference#migrate-dev) command allows you to track the changes you make to your database. The `prisma migrate dev` command automatically generates SQL migration files (saved in `/prisma/migrations`) and applies them to the database. When a migration is applied to the database, the migrations table (`_prisma_migrations`) in your database is also updated.
-
+
The `prisma migrate dev` command tracks the state of the database using the following pieces of state:
@@ -118,7 +118,7 @@ If `prisma migrate dev` detects a schema drift or a migration history conflict,
Expand to see the shadow database explained using a cartoon
-
+
@@ -128,7 +128,7 @@ A schema drift occurs when the expected database schema is different from what i
For such instances, you can use the [`prisma migrate diff`](/v6/orm/reference/prisma-cli-reference#migrate-diff) command to compare your migration history and revert changes made to your database schema.
-
+
You can use `migrate diff` to generate the SQL that either:
@@ -144,7 +144,7 @@ The [`prisma db push`](/v6/orm/reference/prisma-cli-reference#db-push) command a
- the Prisma schema
- the database schema
-
+
The `prisma db push` command is useful when:
@@ -168,7 +168,7 @@ Under the hood, the `migrate deploy` command:
1. Applies pending migrations
1. Updates `_prisma_migrations` table with the new migrations
-
+
The command should be run in an automated CI/ CD environment, for example GitHub Actions.
diff --git a/apps/docs/content/docs.v6/orm/prisma-migrate/understanding-prisma-migrate/shadow-database.mdx b/apps/docs/content/docs.v6/orm/prisma-migrate/understanding-prisma-migrate/shadow-database.mdx
index 329b952a6b..7f8b818bb5 100644
--- a/apps/docs/content/docs.v6/orm/prisma-migrate/understanding-prisma-migrate/shadow-database.mdx
+++ b/apps/docs/content/docs.v6/orm/prisma-migrate/understanding-prisma-migrate/shadow-database.mdx
@@ -35,7 +35,7 @@ When you run `prisma migrate dev` to create a new migration, Prisma Migrate uses
🎨 Expand to see the shadow database explained as a cartoon.
-
+
diff --git a/apps/docs/content/docs.v6/orm/prisma-migrate/workflows/baselining.mdx b/apps/docs/content/docs.v6/orm/prisma-migrate/workflows/baselining.mdx
index 131558823a..36d829ce74 100644
--- a/apps/docs/content/docs.v6/orm/prisma-migrate/workflows/baselining.mdx
+++ b/apps/docs/content/docs.v6/orm/prisma-migrate/workflows/baselining.mdx
@@ -28,7 +28,7 @@ Instead of `migrate deploy`, [`db push`](/v6/orm/prisma-migrate/workflows/protot
When you add Prisma Migrate to an existing project, your initial migration contains all the SQL required to recreate the state of the database **before you started using Prisma Migrate**:
-
+
:::tip
@@ -38,13 +38,13 @@ You can edit the initial migration to include schema elements that cannot be rep
You need this initial migration to create and reset **development environments**:
-
+
However, when you `prisma migrate deploy` your migrations to databases that already exist and _cannot_ be reset - such as production - you **do not want to include the initial migrations**.
The target database already contains the tables and columns created by the initial migration, and attempting to create these elements again will most likely result in an error.
-
+
Baselining solves this problem by telling Prisma Migrate to pretend that the initial migration(s) **have already been applied**.
diff --git a/apps/docs/content/docs.v6/orm/prisma-migrate/workflows/native-database-types.mdx b/apps/docs/content/docs.v6/orm/prisma-migrate/workflows/native-database-types.mdx
index 58ce144653..41f0db4022 100644
--- a/apps/docs/content/docs.v6/orm/prisma-migrate/workflows/native-database-types.mdx
+++ b/apps/docs/content/docs.v6/orm/prisma-migrate/workflows/native-database-types.mdx
@@ -8,7 +8,7 @@ metaDescription: Native database types
Prisma Migrate translates the model defined in your [Prisma schema](/v6/orm/prisma-schema/overview) into features in your database.
-
+
Every¹ feature in your [data model](/v6/orm/prisma-schema/data-model/models) maps to a corresponding feature in the underlying database. **If you can define a feature in the Prisma schema, it is supported by Prisma Migrate.**
diff --git a/apps/docs/content/docs.v6/orm/prisma-schema/data-model/models.mdx b/apps/docs/content/docs.v6/orm/prisma-schema/data-model/models.mdx
index ebf92adddd..ec728818dd 100644
--- a/apps/docs/content/docs.v6/orm/prisma-schema/data-model/models.mdx
+++ b/apps/docs/content/docs.v6/orm/prisma-schema/data-model/models.mdx
@@ -416,7 +416,7 @@ See [complete list of native database type attributes per scalar type and provid
The type of a field can be modified by appending either of two modifiers:
-- [`[]`](/docs/v6/orm/reference/prisma-schema-reference#-modifier) Make a field a list
+- [`[]`](/v6/orm/reference/prisma-schema-reference#-modifier) Make a field a list
- [`?`](/v6/orm/reference/prisma-schema-reference#-modifier-1) Make a field optional
> **Note**: You **cannot** combine type modifiers - optional lists are not supported.
diff --git a/apps/docs/content/docs.v6/orm/prisma-schema/data-model/relations/index.mdx b/apps/docs/content/docs.v6/orm/prisma-schema/data-model/relations/index.mdx
index a08acbd909..397d82887b 100644
--- a/apps/docs/content/docs.v6/orm/prisma-schema/data-model/relations/index.mdx
+++ b/apps/docs/content/docs.v6/orm/prisma-schema/data-model/relations/index.mdx
@@ -66,7 +66,7 @@ At a Prisma ORM level, a connection between two models is **always** represented
The following entity relationship diagram defines the same one-to-many relation between the `User` and `Post` tables in a **relational database**:
-
+
In SQL, you use a _foreign key_ to create a relation between two tables. Foreign keys are stored on **one side** of the relation. Our example is made up of:
@@ -285,7 +285,7 @@ Notice that the syntax is slightly different between relational databases and Mo
For relational databases, the following entity relationship diagram represents the database that corresponds to the sample Prisma schema:
-
+
For MongoDB, Prisma ORM uses a [normalized data model design](https://www.mongodb.com/docs/manual/data-modeling/), which means that documents reference each other by ID in a similar way to relational databases. See [the MongoDB section](#mongodb) for more details.
diff --git a/apps/docs/content/docs.v6/orm/prisma-schema/data-model/relations/relation-mode.mdx b/apps/docs/content/docs.v6/orm/prisma-schema/data-model/relations/relation-mode.mdx
index dfc366a1f6..367436bafd 100644
--- a/apps/docs/content/docs.v6/orm/prisma-schema/data-model/relations/relation-mode.mdx
+++ b/apps/docs/content/docs.v6/orm/prisma-schema/data-model/relations/relation-mode.mdx
@@ -242,7 +242,7 @@ model Post {
If you use the [Prisma VS Code extension](https://marketplace.visualstudio.com/items?itemName=Prisma.prisma) (or our [language server in another editor](/v6/orm/more/dev-environment/editor-setup)), the warning is augmented with a Quick Fix that adds the required index for you:
-
+
## Switch between relation modes
diff --git a/apps/docs/content/docs.v6/orm/reference/database-features.mdx b/apps/docs/content/docs.v6/orm/reference/database-features.mdx
index 5611b65899..18e3dd0458 100644
--- a/apps/docs/content/docs.v6/orm/reference/database-features.mdx
+++ b/apps/docs/content/docs.v6/orm/reference/database-features.mdx
@@ -76,7 +76,7 @@ Algorithm specified via `USING`:
| Feature | Supported | Prisma schema | Prisma Client | Prisma Migrate |
| --------------------------------- | :--------------------------------------: | :----------------------------------------------------------------------------------------: | :-----------: | :------------: |
| Autoincrementing IDs | ✔️ | [`autoincrement()`](/v6/orm/prisma-schema/data-model/models#defining-a-default-value) | ✔️ | ✔️ |
-| Arrays | PostgreSQL only | [`[]`](/docs/v6/orm/prisma-schema/data-model/models#type-modifiers) | ✔️ | ✔️ |
+| Arrays | PostgreSQL only | [`[]`](/v6/orm/prisma-schema/data-model/models#type-modifiers) | ✔️ | ✔️ |
| Enums | ✔️\*† | [`enum`](/v6/orm/prisma-schema/data-model/models#defining-enums) | ✔️ | ✔️ |
| Native database types | ✔️ | ✔️ | ✔️ | Not yet |
| SQL Views | ✔️ | Not yet | Not yet | Not yet |
diff --git a/apps/docs/content/docs/(index)/index.mdx b/apps/docs/content/docs/(index)/index.mdx
index ee1a9451aa..b5b9f86fa9 100644
--- a/apps/docs/content/docs/(index)/index.mdx
+++ b/apps/docs/content/docs/(index)/index.mdx
@@ -20,11 +20,11 @@ npx create-db
-
+
}>
**Need a database?** Get started with your favorite framework and Prisma Postgres.
- }>
+ }>
**Already have a database?** Use Prisma ORM for a type-safe developer experience and automated migrations.
diff --git a/apps/docs/content/docs/orm/prisma-schema/data-model/models.mdx b/apps/docs/content/docs/orm/prisma-schema/data-model/models.mdx
index 5954d76479..78fda3dbcb 100644
--- a/apps/docs/content/docs/orm/prisma-schema/data-model/models.mdx
+++ b/apps/docs/content/docs/orm/prisma-schema/data-model/models.mdx
@@ -316,8 +316,8 @@ See [native database type attributes](/orm/reference/prisma-schema-reference#mod
The type of a field can be modified by appending either of two modifiers:
-- [`[]`](/docs/orm/reference/prisma-schema-reference#-modifier) Make a field a list
-- [`?`](/orm/reference/prisma-schema-reference) Make a field optional
+- [`[]`](/orm/reference/prisma-schema-reference#-modifier) Make a field a list
+- [`?`](/orm/reference/prisma-schema-reference#-modifier-1) Make a field optional
> **Note**: You **cannot** combine type modifiers - optional lists are not supported.
diff --git a/apps/docs/content/docs/orm/reference/database-features.mdx b/apps/docs/content/docs/orm/reference/database-features.mdx
index 8779be6948..e2326e8a81 100644
--- a/apps/docs/content/docs/orm/reference/database-features.mdx
+++ b/apps/docs/content/docs/orm/reference/database-features.mdx
@@ -76,7 +76,7 @@ Algorithm specified via `USING`:
| Feature | Supported | Prisma schema | Prisma Client | Prisma Migrate |
| --------------------------------- | :--------------------------------------: | :--------------------------------------------------------------------------------: | :-----------: | :------------: |
| Autoincrementing IDs | ✔️ | [`autoincrement()`](/orm/prisma-schema/data-model/models#defining-a-default-value) | ✔️ | ✔️ |
-| Arrays | PostgreSQL only | [`[]`](/docs/orm/prisma-schema/data-model/models#type-modifiers) | ✔️ | ✔️ |
+| Arrays | PostgreSQL only | [`[]`](/orm/prisma-schema/data-model/models#type-modifiers) | ✔️ | ✔️ |
| Enums | ✔️\*† | [`enum`](/orm/prisma-schema/data-model/models#defining-enums) | ✔️ | ✔️ |
| Native database types | ✔️ | ✔️ | ✔️ | Not yet |
| SQL Views | ✔️ | Not yet | Not yet | Not yet |
diff --git a/apps/docs/package.json b/apps/docs/package.json
index 3bb0b47133..b37adea988 100644
--- a/apps/docs/package.json
+++ b/apps/docs/package.json
@@ -12,6 +12,7 @@
"types:check": "fumadocs-mdx && next typegen && tsc --noEmit",
"postinstall": "fumadocs-mdx",
"lint:links": "tsx ./scripts/lint-links.ts",
+ "lint:images": "tsx ./scripts/lint-images.ts",
"lint:code": "tsx ./scripts/lint-code-blocks.ts",
"lint:spellcheck": "cspell \"content/docs/**/*.mdx\" \"content/docs/**/*.json\""
},
diff --git a/apps/docs/public/docs/v6/orm/more/internals/query-engine-node-js-at-runtime.png b/apps/docs/public/img/v6/orm/more/internals/query-engine-node-js-at-runtime.png
similarity index 100%
rename from apps/docs/public/docs/v6/orm/more/internals/query-engine-node-js-at-runtime.png
rename to apps/docs/public/img/v6/orm/more/internals/query-engine-node-js-at-runtime.png
diff --git a/apps/docs/public/docs/v6/orm/more/internals/typical-flow-query-engine-at-runtime.png b/apps/docs/public/img/v6/orm/more/internals/typical-flow-query-engine-at-runtime.png
similarity index 100%
rename from apps/docs/public/docs/v6/orm/more/internals/typical-flow-query-engine-at-runtime.png
rename to apps/docs/public/img/v6/orm/more/internals/typical-flow-query-engine-at-runtime.png
diff --git a/apps/docs/public/docs/v6/orm/overview/databases/images/drivers/qe-query-engine-adapter.png b/apps/docs/public/img/v6/orm/overview/databases/images/drivers/qe-query-engine-adapter.png
similarity index 100%
rename from apps/docs/public/docs/v6/orm/overview/databases/images/drivers/qe-query-engine-adapter.png
rename to apps/docs/public/img/v6/orm/overview/databases/images/drivers/qe-query-engine-adapter.png
diff --git a/apps/docs/public/docs/v6/orm/overview/databases/images/drivers/qe-query-execution-flow.png b/apps/docs/public/img/v6/orm/overview/databases/images/drivers/qe-query-execution-flow.png
similarity index 100%
rename from apps/docs/public/docs/v6/orm/overview/databases/images/drivers/qe-query-execution-flow.png
rename to apps/docs/public/img/v6/orm/overview/databases/images/drivers/qe-query-execution-flow.png
diff --git a/apps/docs/public/docs/v6/orm/overview/databases/images/embedded-replica-create-replica.png b/apps/docs/public/img/v6/orm/overview/databases/images/embedded-replica-create-replica.png
similarity index 100%
rename from apps/docs/public/docs/v6/orm/overview/databases/images/embedded-replica-create-replica.png
rename to apps/docs/public/img/v6/orm/overview/databases/images/embedded-replica-create-replica.png
diff --git a/apps/docs/public/docs/v6/orm/overview/databases/images/embedded-replica-read.png b/apps/docs/public/img/v6/orm/overview/databases/images/embedded-replica-read.png
similarity index 100%
rename from apps/docs/public/docs/v6/orm/overview/databases/images/embedded-replica-read.png
rename to apps/docs/public/img/v6/orm/overview/databases/images/embedded-replica-read.png
diff --git a/apps/docs/public/docs/v6/orm/overview/databases/images/embedded-replica-remote-read.png b/apps/docs/public/img/v6/orm/overview/databases/images/embedded-replica-remote-read.png
similarity index 100%
rename from apps/docs/public/docs/v6/orm/overview/databases/images/embedded-replica-remote-read.png
rename to apps/docs/public/img/v6/orm/overview/databases/images/embedded-replica-remote-read.png
diff --git a/apps/docs/public/docs/v6/orm/overview/databases/images/embedded-replica-write-propagation.png b/apps/docs/public/img/v6/orm/overview/databases/images/embedded-replica-write-propagation.png
similarity index 100%
rename from apps/docs/public/docs/v6/orm/overview/databases/images/embedded-replica-write-propagation.png
rename to apps/docs/public/img/v6/orm/overview/databases/images/embedded-replica-write-propagation.png
diff --git a/apps/docs/public/docs/v6/orm/overview/databases/mongodb.png b/apps/docs/public/img/v6/orm/overview/databases/mongodb.png
similarity index 100%
rename from apps/docs/public/docs/v6/orm/overview/databases/mongodb.png
rename to apps/docs/public/img/v6/orm/overview/databases/mongodb.png
diff --git a/apps/docs/public/docs/v6/orm/overview/databases/mysql-connection-string.png b/apps/docs/public/img/v6/orm/overview/databases/mysql-connection-string.png
similarity index 100%
rename from apps/docs/public/docs/v6/orm/overview/databases/mysql-connection-string.png
rename to apps/docs/public/img/v6/orm/overview/databases/mysql-connection-string.png
diff --git a/apps/docs/public/docs/v6/orm/overview/databases/postgresql-connection-string.png b/apps/docs/public/img/v6/orm/overview/databases/postgresql-connection-string.png
similarity index 100%
rename from apps/docs/public/docs/v6/orm/overview/databases/postgresql-connection-string.png
rename to apps/docs/public/img/v6/orm/overview/databases/postgresql-connection-string.png
diff --git a/apps/docs/public/docs/v6/orm/overview/introduction/node-js-db-tools-tradeoffs.png b/apps/docs/public/img/v6/orm/overview/introduction/node-js-db-tools-tradeoffs.png
similarity index 100%
rename from apps/docs/public/docs/v6/orm/overview/introduction/node-js-db-tools-tradeoffs.png
rename to apps/docs/public/img/v6/orm/overview/introduction/node-js-db-tools-tradeoffs.png
diff --git a/apps/docs/public/docs/v6/orm/overview/introduction/prisma-makes-devs-productive.png b/apps/docs/public/img/v6/orm/overview/introduction/prisma-makes-devs-productive.png
similarity index 100%
rename from apps/docs/public/docs/v6/orm/overview/introduction/prisma-makes-devs-productive.png
rename to apps/docs/public/img/v6/orm/overview/introduction/prisma-makes-devs-productive.png
diff --git a/apps/docs/public/docs/v6/orm/overview/introduction/prisma-rest-apis.png b/apps/docs/public/img/v6/orm/overview/introduction/prisma-rest-apis.png
similarity index 100%
rename from apps/docs/public/docs/v6/orm/overview/introduction/prisma-rest-apis.png
rename to apps/docs/public/img/v6/orm/overview/introduction/prisma-rest-apis.png
diff --git a/apps/docs/public/docs/v6/orm/overview/introduction/user-post-relation-1-n.png b/apps/docs/public/img/v6/orm/overview/introduction/user-post-relation-1-n.png
similarity index 100%
rename from apps/docs/public/docs/v6/orm/overview/introduction/user-post-relation-1-n.png
rename to apps/docs/public/img/v6/orm/overview/introduction/user-post-relation-1-n.png
diff --git a/apps/docs/public/docs/v6/orm/overview/introduction/user-table.png b/apps/docs/public/img/v6/orm/overview/introduction/user-table.png
similarity index 100%
rename from apps/docs/public/docs/v6/orm/overview/introduction/user-table.png
rename to apps/docs/public/img/v6/orm/overview/introduction/user-table.png
diff --git a/apps/docs/public/docs/v6/orm/overview/introduction/user-table.svg b/apps/docs/public/img/v6/orm/overview/introduction/user-table.svg
similarity index 100%
rename from apps/docs/public/docs/v6/orm/overview/introduction/user-table.svg
rename to apps/docs/public/img/v6/orm/overview/introduction/user-table.svg
diff --git a/apps/docs/public/docs/v6/orm/prisma-client/deployment/edge/images/450-03-import-project.png b/apps/docs/public/img/v6/orm/prisma-client/deployment/edge/images/450-03-import-project.png
similarity index 100%
rename from apps/docs/public/docs/v6/orm/prisma-client/deployment/edge/images/450-03-import-project.png
rename to apps/docs/public/img/v6/orm/prisma-client/deployment/edge/images/450-03-import-project.png
diff --git a/apps/docs/public/docs/v6/orm/prisma-client/deployment/edge/images/450-04-connect-db.png b/apps/docs/public/img/v6/orm/prisma-client/deployment/edge/images/450-04-connect-db.png
similarity index 100%
rename from apps/docs/public/docs/v6/orm/prisma-client/deployment/edge/images/450-04-connect-db.png
rename to apps/docs/public/img/v6/orm/prisma-client/deployment/edge/images/450-04-connect-db.png
diff --git a/apps/docs/public/docs/v6/orm/prisma-client/deployment/edge/images/450-05-data-proxy.png b/apps/docs/public/img/v6/orm/prisma-client/deployment/edge/images/450-05-data-proxy.png
similarity index 100%
rename from apps/docs/public/docs/v6/orm/prisma-client/deployment/edge/images/450-05-data-proxy.png
rename to apps/docs/public/img/v6/orm/prisma-client/deployment/edge/images/450-05-data-proxy.png
diff --git a/apps/docs/public/docs/v6/orm/prisma-client/deployment/edge/images/550-01-create-repo.png b/apps/docs/public/img/v6/orm/prisma-client/deployment/edge/images/550-01-create-repo.png
similarity index 100%
rename from apps/docs/public/docs/v6/orm/prisma-client/deployment/edge/images/550-01-create-repo.png
rename to apps/docs/public/img/v6/orm/prisma-client/deployment/edge/images/550-01-create-repo.png
diff --git a/apps/docs/public/docs/v6/orm/prisma-client/deployment/edge/images/550-02-deploy-to-deno-project-parameters.png b/apps/docs/public/img/v6/orm/prisma-client/deployment/edge/images/550-02-deploy-to-deno-project-parameters.png
similarity index 100%
rename from apps/docs/public/docs/v6/orm/prisma-client/deployment/edge/images/550-02-deploy-to-deno-project-parameters.png
rename to apps/docs/public/img/v6/orm/prisma-client/deployment/edge/images/550-02-deploy-to-deno-project-parameters.png
diff --git a/apps/docs/public/docs/v6/orm/prisma-client/deployment/serverless/images/300-00-deploy-to-vercel-architecture.png b/apps/docs/public/img/v6/orm/prisma-client/deployment/serverless/images/300-00-deploy-to-vercel-architecture.png
similarity index 100%
rename from apps/docs/public/docs/v6/orm/prisma-client/deployment/serverless/images/300-00-deploy-to-vercel-architecture.png
rename to apps/docs/public/img/v6/orm/prisma-client/deployment/serverless/images/300-00-deploy-to-vercel-architecture.png
diff --git a/apps/docs/public/docs/v6/orm/prisma-client/deployment/serverless/images/300-10-deploy-to-vercel-deploy-button.png b/apps/docs/public/img/v6/orm/prisma-client/deployment/serverless/images/300-10-deploy-to-vercel-deploy-button.png
similarity index 100%
rename from apps/docs/public/docs/v6/orm/prisma-client/deployment/serverless/images/300-10-deploy-to-vercel-deploy-button.png
rename to apps/docs/public/img/v6/orm/prisma-client/deployment/serverless/images/300-10-deploy-to-vercel-deploy-button.png
diff --git a/apps/docs/public/docs/v6/orm/prisma-client/deployment/serverless/images/300-20-deploy-to-vercel-select-github.png b/apps/docs/public/img/v6/orm/prisma-client/deployment/serverless/images/300-20-deploy-to-vercel-select-github.png
similarity index 100%
rename from apps/docs/public/docs/v6/orm/prisma-client/deployment/serverless/images/300-20-deploy-to-vercel-select-github.png
rename to apps/docs/public/img/v6/orm/prisma-client/deployment/serverless/images/300-20-deploy-to-vercel-select-github.png
diff --git a/apps/docs/public/docs/v6/orm/prisma-client/deployment/serverless/images/300-30-deploy-to-vercel-create-git-repo.png b/apps/docs/public/img/v6/orm/prisma-client/deployment/serverless/images/300-30-deploy-to-vercel-create-git-repo.png
similarity index 100%
rename from apps/docs/public/docs/v6/orm/prisma-client/deployment/serverless/images/300-30-deploy-to-vercel-create-git-repo.png
rename to apps/docs/public/img/v6/orm/prisma-client/deployment/serverless/images/300-30-deploy-to-vercel-create-git-repo.png
diff --git a/apps/docs/public/docs/v6/orm/prisma-client/deployment/serverless/images/300-40-deploy-to-vercel-configure-project.png b/apps/docs/public/img/v6/orm/prisma-client/deployment/serverless/images/300-40-deploy-to-vercel-configure-project.png
similarity index 100%
rename from apps/docs/public/docs/v6/orm/prisma-client/deployment/serverless/images/300-40-deploy-to-vercel-configure-project.png
rename to apps/docs/public/img/v6/orm/prisma-client/deployment/serverless/images/300-40-deploy-to-vercel-configure-project.png
diff --git a/apps/docs/public/docs/v6/orm/prisma-client/deployment/serverless/images/300-50-deploy-to-vercel-success.png b/apps/docs/public/img/v6/orm/prisma-client/deployment/serverless/images/300-50-deploy-to-vercel-success.png
similarity index 100%
rename from apps/docs/public/docs/v6/orm/prisma-client/deployment/serverless/images/300-50-deploy-to-vercel-success.png
rename to apps/docs/public/img/v6/orm/prisma-client/deployment/serverless/images/300-50-deploy-to-vercel-success.png
diff --git a/apps/docs/public/docs/v6/orm/prisma-client/deployment/serverless/images/300-60-deploy-to-vercel-preview-environment-variable.png b/apps/docs/public/img/v6/orm/prisma-client/deployment/serverless/images/300-60-deploy-to-vercel-preview-environment-variable.png
similarity index 100%
rename from apps/docs/public/docs/v6/orm/prisma-client/deployment/serverless/images/300-60-deploy-to-vercel-preview-environment-variable.png
rename to apps/docs/public/img/v6/orm/prisma-client/deployment/serverless/images/300-60-deploy-to-vercel-preview-environment-variable.png
diff --git a/apps/docs/public/docs/v6/orm/prisma-client/deployment/serverless/images/300-70-deploy-to-vercel-environment-variables.png b/apps/docs/public/img/v6/orm/prisma-client/deployment/serverless/images/300-70-deploy-to-vercel-environment-variables.png
similarity index 100%
rename from apps/docs/public/docs/v6/orm/prisma-client/deployment/serverless/images/300-70-deploy-to-vercel-environment-variables.png
rename to apps/docs/public/img/v6/orm/prisma-client/deployment/serverless/images/300-70-deploy-to-vercel-environment-variables.png
diff --git a/apps/docs/public/docs/v6/orm/prisma-client/deployment/serverless/images/500-01-deploy-to-netlify-architecture.png b/apps/docs/public/img/v6/orm/prisma-client/deployment/serverless/images/500-01-deploy-to-netlify-architecture.png
similarity index 100%
rename from apps/docs/public/docs/v6/orm/prisma-client/deployment/serverless/images/500-01-deploy-to-netlify-architecture.png
rename to apps/docs/public/img/v6/orm/prisma-client/deployment/serverless/images/500-01-deploy-to-netlify-architecture.png
diff --git a/apps/docs/public/docs/v6/orm/prisma-client/deployment/serverless/images/500-02-deploy-to-netlify-example-repo-click-fork.png b/apps/docs/public/img/v6/orm/prisma-client/deployment/serverless/images/500-02-deploy-to-netlify-example-repo-click-fork.png
similarity index 100%
rename from apps/docs/public/docs/v6/orm/prisma-client/deployment/serverless/images/500-02-deploy-to-netlify-example-repo-click-fork.png
rename to apps/docs/public/img/v6/orm/prisma-client/deployment/serverless/images/500-02-deploy-to-netlify-example-repo-click-fork.png
diff --git a/apps/docs/public/docs/v6/orm/prisma-client/deployment/serverless/images/500-03-deploy-to-netlify-example-repo-create-fork-page.png b/apps/docs/public/img/v6/orm/prisma-client/deployment/serverless/images/500-03-deploy-to-netlify-example-repo-create-fork-page.png
similarity index 100%
rename from apps/docs/public/docs/v6/orm/prisma-client/deployment/serverless/images/500-03-deploy-to-netlify-example-repo-create-fork-page.png
rename to apps/docs/public/img/v6/orm/prisma-client/deployment/serverless/images/500-03-deploy-to-netlify-example-repo-create-fork-page.png
diff --git a/apps/docs/public/docs/v6/orm/prisma-client/deployment/serverless/images/500-04-deploy-to-netlify-copy-supabase-connection-string.png b/apps/docs/public/img/v6/orm/prisma-client/deployment/serverless/images/500-04-deploy-to-netlify-copy-supabase-connection-string.png
similarity index 100%
rename from apps/docs/public/docs/v6/orm/prisma-client/deployment/serverless/images/500-04-deploy-to-netlify-copy-supabase-connection-string.png
rename to apps/docs/public/img/v6/orm/prisma-client/deployment/serverless/images/500-04-deploy-to-netlify-copy-supabase-connection-string.png
diff --git a/apps/docs/public/docs/v6/orm/prisma-client/deployment/serverless/images/500-05-deploy-to-netlify-netlify-init-configure-site.png b/apps/docs/public/img/v6/orm/prisma-client/deployment/serverless/images/500-05-deploy-to-netlify-netlify-init-configure-site.png
similarity index 100%
rename from apps/docs/public/docs/v6/orm/prisma-client/deployment/serverless/images/500-05-deploy-to-netlify-netlify-init-configure-site.png
rename to apps/docs/public/img/v6/orm/prisma-client/deployment/serverless/images/500-05-deploy-to-netlify-netlify-init-configure-site.png
diff --git a/apps/docs/public/docs/v6/orm/prisma-client/deployment/serverless/images/500-06-deploy-to-netlify-site-settings.png b/apps/docs/public/img/v6/orm/prisma-client/deployment/serverless/images/500-06-deploy-to-netlify-site-settings.png
similarity index 100%
rename from apps/docs/public/docs/v6/orm/prisma-client/deployment/serverless/images/500-06-deploy-to-netlify-site-settings.png
rename to apps/docs/public/img/v6/orm/prisma-client/deployment/serverless/images/500-06-deploy-to-netlify-site-settings.png
diff --git a/apps/docs/public/docs/v6/orm/prisma-client/deployment/serverless/images/500-07-deploy-to-netlify-environment-variables-settings.png b/apps/docs/public/img/v6/orm/prisma-client/deployment/serverless/images/500-07-deploy-to-netlify-environment-variables-settings.png
similarity index 100%
rename from apps/docs/public/docs/v6/orm/prisma-client/deployment/serverless/images/500-07-deploy-to-netlify-environment-variables-settings.png
rename to apps/docs/public/img/v6/orm/prisma-client/deployment/serverless/images/500-07-deploy-to-netlify-environment-variables-settings.png
diff --git a/apps/docs/public/docs/v6/orm/prisma-client/deployment/serverless/images/500-08-deploy-to-netlify-application-deployed.png b/apps/docs/public/img/v6/orm/prisma-client/deployment/serverless/images/500-08-deploy-to-netlify-application-deployed.png
similarity index 100%
rename from apps/docs/public/docs/v6/orm/prisma-client/deployment/serverless/images/500-08-deploy-to-netlify-application-deployed.png
rename to apps/docs/public/img/v6/orm/prisma-client/deployment/serverless/images/500-08-deploy-to-netlify-application-deployed.png
diff --git a/apps/docs/public/docs/v6/orm/prisma-client/deployment/serverless/images/500-09-deploy-to-netlify-application-deployed-call-result.png b/apps/docs/public/img/v6/orm/prisma-client/deployment/serverless/images/500-09-deploy-to-netlify-application-deployed-call-result.png
similarity index 100%
rename from apps/docs/public/docs/v6/orm/prisma-client/deployment/serverless/images/500-09-deploy-to-netlify-application-deployed-call-result.png
rename to apps/docs/public/img/v6/orm/prisma-client/deployment/serverless/images/500-09-deploy-to-netlify-application-deployed-call-result.png
diff --git a/apps/docs/public/docs/v6/orm/prisma-client/deployment/traditional/images/heroku-architecture.png b/apps/docs/public/img/v6/orm/prisma-client/deployment/traditional/images/heroku-architecture.png
similarity index 100%
rename from apps/docs/public/docs/v6/orm/prisma-client/deployment/traditional/images/heroku-architecture.png
rename to apps/docs/public/img/v6/orm/prisma-client/deployment/traditional/images/heroku-architecture.png
diff --git a/apps/docs/public/docs/v6/orm/prisma-client/deployment/traditional/images/heroku-deployed.png b/apps/docs/public/img/v6/orm/prisma-client/deployment/traditional/images/heroku-deployed.png
similarity index 100%
rename from apps/docs/public/docs/v6/orm/prisma-client/deployment/traditional/images/heroku-deployed.png
rename to apps/docs/public/img/v6/orm/prisma-client/deployment/traditional/images/heroku-deployed.png
diff --git a/apps/docs/public/docs/v6/orm/prisma-client/deployment/traditional/images/koyeb-app-creation.png b/apps/docs/public/img/v6/orm/prisma-client/deployment/traditional/images/koyeb-app-creation.png
similarity index 100%
rename from apps/docs/public/docs/v6/orm/prisma-client/deployment/traditional/images/koyeb-app-creation.png
rename to apps/docs/public/img/v6/orm/prisma-client/deployment/traditional/images/koyeb-app-creation.png
diff --git a/apps/docs/public/docs/v6/orm/prisma-client/deployment/traditional/images/koyeb-architecture.png b/apps/docs/public/img/v6/orm/prisma-client/deployment/traditional/images/koyeb-architecture.png
similarity index 100%
rename from apps/docs/public/docs/v6/orm/prisma-client/deployment/traditional/images/koyeb-architecture.png
rename to apps/docs/public/img/v6/orm/prisma-client/deployment/traditional/images/koyeb-architecture.png
diff --git a/apps/docs/public/docs/v6/orm/prisma-client/deployment/traditional/images/koyeb-deployed.png b/apps/docs/public/img/v6/orm/prisma-client/deployment/traditional/images/koyeb-deployed.png
similarity index 100%
rename from apps/docs/public/docs/v6/orm/prisma-client/deployment/traditional/images/koyeb-deployed.png
rename to apps/docs/public/img/v6/orm/prisma-client/deployment/traditional/images/koyeb-deployed.png
diff --git a/apps/docs/public/docs/v6/orm/prisma-client/deployment/traditional/images/railway-deploying.png b/apps/docs/public/img/v6/orm/prisma-client/deployment/traditional/images/railway-deploying.png
similarity index 100%
rename from apps/docs/public/docs/v6/orm/prisma-client/deployment/traditional/images/railway-deploying.png
rename to apps/docs/public/img/v6/orm/prisma-client/deployment/traditional/images/railway-deploying.png
diff --git a/apps/docs/public/docs/v6/orm/prisma-client/deployment/traditional/images/railway-env-vars.png b/apps/docs/public/img/v6/orm/prisma-client/deployment/traditional/images/railway-env-vars.png
similarity index 100%
rename from apps/docs/public/docs/v6/orm/prisma-client/deployment/traditional/images/railway-env-vars.png
rename to apps/docs/public/img/v6/orm/prisma-client/deployment/traditional/images/railway-env-vars.png
diff --git a/apps/docs/public/docs/v6/orm/prisma-client/deployment/traditional/images/railway-final-product.png b/apps/docs/public/img/v6/orm/prisma-client/deployment/traditional/images/railway-final-product.png
similarity index 100%
rename from apps/docs/public/docs/v6/orm/prisma-client/deployment/traditional/images/railway-final-product.png
rename to apps/docs/public/img/v6/orm/prisma-client/deployment/traditional/images/railway-final-product.png
diff --git a/apps/docs/public/docs/v6/orm/prisma-client/deployment/traditional/images/railway-networking.png b/apps/docs/public/img/v6/orm/prisma-client/deployment/traditional/images/railway-networking.png
similarity index 100%
rename from apps/docs/public/docs/v6/orm/prisma-client/deployment/traditional/images/railway-networking.png
rename to apps/docs/public/img/v6/orm/prisma-client/deployment/traditional/images/railway-networking.png
diff --git a/apps/docs/public/docs/v6/orm/prisma-client/deployment/traditional/images/sevalla-app-creation.png b/apps/docs/public/img/v6/orm/prisma-client/deployment/traditional/images/sevalla-app-creation.png
similarity index 100%
rename from apps/docs/public/docs/v6/orm/prisma-client/deployment/traditional/images/sevalla-app-creation.png
rename to apps/docs/public/img/v6/orm/prisma-client/deployment/traditional/images/sevalla-app-creation.png
diff --git a/apps/docs/public/docs/v6/orm/prisma-client/deployment/traditional/images/sevalla-app-internal-connection.png b/apps/docs/public/img/v6/orm/prisma-client/deployment/traditional/images/sevalla-app-internal-connection.png
similarity index 100%
rename from apps/docs/public/docs/v6/orm/prisma-client/deployment/traditional/images/sevalla-app-internal-connection.png
rename to apps/docs/public/img/v6/orm/prisma-client/deployment/traditional/images/sevalla-app-internal-connection.png
diff --git a/apps/docs/public/docs/v6/orm/prisma-client/deployment/traditional/images/sevalla-choose-repository.png b/apps/docs/public/img/v6/orm/prisma-client/deployment/traditional/images/sevalla-choose-repository.png
similarity index 100%
rename from apps/docs/public/docs/v6/orm/prisma-client/deployment/traditional/images/sevalla-choose-repository.png
rename to apps/docs/public/img/v6/orm/prisma-client/deployment/traditional/images/sevalla-choose-repository.png
diff --git a/apps/docs/public/docs/v6/orm/prisma-client/deployment/traditional/images/sevalla-create-database.png b/apps/docs/public/img/v6/orm/prisma-client/deployment/traditional/images/sevalla-create-database.png
similarity index 100%
rename from apps/docs/public/docs/v6/orm/prisma-client/deployment/traditional/images/sevalla-create-database.png
rename to apps/docs/public/img/v6/orm/prisma-client/deployment/traditional/images/sevalla-create-database.png
diff --git a/apps/docs/public/docs/v6/orm/prisma-client/deployment/traditional/images/sevalla-database-studio.png b/apps/docs/public/img/v6/orm/prisma-client/deployment/traditional/images/sevalla-database-studio.png
similarity index 100%
rename from apps/docs/public/docs/v6/orm/prisma-client/deployment/traditional/images/sevalla-database-studio.png
rename to apps/docs/public/img/v6/orm/prisma-client/deployment/traditional/images/sevalla-database-studio.png
diff --git a/apps/docs/public/docs/v6/orm/prisma-client/deployment/traditional/images/sevalla-name-application.png b/apps/docs/public/img/v6/orm/prisma-client/deployment/traditional/images/sevalla-name-application.png
similarity index 100%
rename from apps/docs/public/docs/v6/orm/prisma-client/deployment/traditional/images/sevalla-name-application.png
rename to apps/docs/public/img/v6/orm/prisma-client/deployment/traditional/images/sevalla-name-application.png
diff --git a/apps/docs/public/docs/v6/orm/prisma-client/deployment/traditional/images/sevalla-web-terminal.png b/apps/docs/public/img/v6/orm/prisma-client/deployment/traditional/images/sevalla-web-terminal.png
similarity index 100%
rename from apps/docs/public/docs/v6/orm/prisma-client/deployment/traditional/images/sevalla-web-terminal.png
rename to apps/docs/public/img/v6/orm/prisma-client/deployment/traditional/images/sevalla-web-terminal.png
diff --git a/apps/docs/public/docs/v6/orm/prisma-client/observability-and-logging/jaeger.png b/apps/docs/public/img/v6/orm/prisma-client/observability-and-logging/jaeger.png
similarity index 100%
rename from apps/docs/public/docs/v6/orm/prisma-client/observability-and-logging/jaeger.png
rename to apps/docs/public/img/v6/orm/prisma-client/observability-and-logging/jaeger.png
diff --git a/apps/docs/public/docs/v6/orm/prisma-client/observability-and-logging/trace-diagram.png b/apps/docs/public/img/v6/orm/prisma-client/observability-and-logging/trace-diagram.png
similarity index 100%
rename from apps/docs/public/docs/v6/orm/prisma-client/observability-and-logging/trace-diagram.png
rename to apps/docs/public/img/v6/orm/prisma-client/observability-and-logging/trace-diagram.png
diff --git a/apps/docs/public/docs/v6/orm/prisma-client/setup-and-configuration/databases-connections/serverless-connections-2.png b/apps/docs/public/img/v6/orm/prisma-client/setup-and-configuration/databases-connections/serverless-connections-2.png
similarity index 100%
rename from apps/docs/public/docs/v6/orm/prisma-client/setup-and-configuration/databases-connections/serverless-connections-2.png
rename to apps/docs/public/img/v6/orm/prisma-client/setup-and-configuration/databases-connections/serverless-connections-2.png
diff --git a/apps/docs/public/docs/v6/orm/prisma-client/setup-and-configuration/databases-connections/serverless-connections.png b/apps/docs/public/img/v6/orm/prisma-client/setup-and-configuration/databases-connections/serverless-connections.png
similarity index 100%
rename from apps/docs/public/docs/v6/orm/prisma-client/setup-and-configuration/databases-connections/serverless-connections.png
rename to apps/docs/public/img/v6/orm/prisma-client/setup-and-configuration/databases-connections/serverless-connections.png
diff --git a/apps/docs/public/docs/v6/orm/prisma-client/setup-and-configuration/prisma-client-generation-workflow.png b/apps/docs/public/img/v6/orm/prisma-client/setup-and-configuration/prisma-client-generation-workflow.png
similarity index 100%
rename from apps/docs/public/docs/v6/orm/prisma-client/setup-and-configuration/prisma-client-generation-workflow.png
rename to apps/docs/public/img/v6/orm/prisma-client/setup-and-configuration/prisma-client-generation-workflow.png
diff --git a/apps/docs/public/docs/v6/orm/prisma-client/setup-and-configuration/prisma-client-node-module.png b/apps/docs/public/img/v6/orm/prisma-client/setup-and-configuration/prisma-client-node-module.png
similarity index 100%
rename from apps/docs/public/docs/v6/orm/prisma-client/setup-and-configuration/prisma-client-node-module.png
rename to apps/docs/public/img/v6/orm/prisma-client/setup-and-configuration/prisma-client-node-module.png
diff --git a/apps/docs/public/docs/v6/orm/prisma-client/testing/Docker_Diagram_V1.png b/apps/docs/public/img/v6/orm/prisma-client/testing/Docker_Diagram_V1.png
similarity index 100%
rename from apps/docs/public/docs/v6/orm/prisma-client/testing/Docker_Diagram_V1.png
rename to apps/docs/public/img/v6/orm/prisma-client/testing/Docker_Diagram_V1.png
diff --git a/apps/docs/public/docs/v6/orm/prisma-migrate/understanding-prisma-migrate/mental-model-illustrations/database-first-migration-flow.png b/apps/docs/public/img/v6/orm/prisma-migrate/understanding-prisma-migrate/mental-model-illustrations/database-first-migration-flow.png
similarity index 100%
rename from apps/docs/public/docs/v6/orm/prisma-migrate/understanding-prisma-migrate/mental-model-illustrations/database-first-migration-flow.png
rename to apps/docs/public/img/v6/orm/prisma-migrate/understanding-prisma-migrate/mental-model-illustrations/database-first-migration-flow.png
diff --git a/apps/docs/public/docs/v6/orm/prisma-migrate/understanding-prisma-migrate/mental-model-illustrations/db-push-flow.png b/apps/docs/public/img/v6/orm/prisma-migrate/understanding-prisma-migrate/mental-model-illustrations/db-push-flow.png
similarity index 100%
rename from apps/docs/public/docs/v6/orm/prisma-migrate/understanding-prisma-migrate/mental-model-illustrations/db-push-flow.png
rename to apps/docs/public/img/v6/orm/prisma-migrate/understanding-prisma-migrate/mental-model-illustrations/db-push-flow.png
diff --git a/apps/docs/public/docs/v6/orm/prisma-migrate/understanding-prisma-migrate/mental-model-illustrations/entity-first-migration-flow.png b/apps/docs/public/img/v6/orm/prisma-migrate/understanding-prisma-migrate/mental-model-illustrations/entity-first-migration-flow.png
similarity index 100%
rename from apps/docs/public/docs/v6/orm/prisma-migrate/understanding-prisma-migrate/mental-model-illustrations/entity-first-migration-flow.png
rename to apps/docs/public/img/v6/orm/prisma-migrate/understanding-prisma-migrate/mental-model-illustrations/entity-first-migration-flow.png
diff --git a/apps/docs/public/docs/v6/orm/prisma-migrate/understanding-prisma-migrate/mental-model-illustrations/prisma-migrate-dev-flow.png b/apps/docs/public/img/v6/orm/prisma-migrate/understanding-prisma-migrate/mental-model-illustrations/prisma-migrate-dev-flow.png
similarity index 100%
rename from apps/docs/public/docs/v6/orm/prisma-migrate/understanding-prisma-migrate/mental-model-illustrations/prisma-migrate-dev-flow.png
rename to apps/docs/public/img/v6/orm/prisma-migrate/understanding-prisma-migrate/mental-model-illustrations/prisma-migrate-dev-flow.png
diff --git a/apps/docs/public/docs/v6/orm/prisma-migrate/understanding-prisma-migrate/mental-model-illustrations/prisma-migrate-diff-flow.png b/apps/docs/public/img/v6/orm/prisma-migrate/understanding-prisma-migrate/mental-model-illustrations/prisma-migrate-diff-flow.png
similarity index 100%
rename from apps/docs/public/docs/v6/orm/prisma-migrate/understanding-prisma-migrate/mental-model-illustrations/prisma-migrate-diff-flow.png
rename to apps/docs/public/img/v6/orm/prisma-migrate/understanding-prisma-migrate/mental-model-illustrations/prisma-migrate-diff-flow.png
diff --git a/apps/docs/public/docs/v6/orm/prisma-migrate/understanding-prisma-migrate/mental-model-illustrations/prisma-migrate-lifecycle.png b/apps/docs/public/img/v6/orm/prisma-migrate/understanding-prisma-migrate/mental-model-illustrations/prisma-migrate-lifecycle.png
similarity index 100%
rename from apps/docs/public/docs/v6/orm/prisma-migrate/understanding-prisma-migrate/mental-model-illustrations/prisma-migrate-lifecycle.png
rename to apps/docs/public/img/v6/orm/prisma-migrate/understanding-prisma-migrate/mental-model-illustrations/prisma-migrate-lifecycle.png
diff --git a/apps/docs/public/docs/v6/orm/prisma-migrate/understanding-prisma-migrate/mental-model-illustrations/prisma-migrate-state-mgt.png b/apps/docs/public/img/v6/orm/prisma-migrate/understanding-prisma-migrate/mental-model-illustrations/prisma-migrate-state-mgt.png
similarity index 100%
rename from apps/docs/public/docs/v6/orm/prisma-migrate/understanding-prisma-migrate/mental-model-illustrations/prisma-migrate-state-mgt.png
rename to apps/docs/public/img/v6/orm/prisma-migrate/understanding-prisma-migrate/mental-model-illustrations/prisma-migrate-state-mgt.png
diff --git a/apps/docs/public/docs/v6/orm/prisma-migrate/understanding-prisma-migrate/migrate-mapping.png b/apps/docs/public/img/v6/orm/prisma-migrate/understanding-prisma-migrate/migrate-mapping.png
similarity index 100%
rename from apps/docs/public/docs/v6/orm/prisma-migrate/understanding-prisma-migrate/migrate-mapping.png
rename to apps/docs/public/img/v6/orm/prisma-migrate/understanding-prisma-migrate/migrate-mapping.png
diff --git a/apps/docs/public/docs/v6/orm/prisma-migrate/understanding-prisma-migrate/shadow-database.png b/apps/docs/public/img/v6/orm/prisma-migrate/understanding-prisma-migrate/shadow-database.png
similarity index 100%
rename from apps/docs/public/docs/v6/orm/prisma-migrate/understanding-prisma-migrate/shadow-database.png
rename to apps/docs/public/img/v6/orm/prisma-migrate/understanding-prisma-migrate/shadow-database.png
diff --git a/apps/docs/public/docs/v6/orm/prisma-migrate/understanding-prisma-migrate/shadow-db.png b/apps/docs/public/img/v6/orm/prisma-migrate/understanding-prisma-migrate/shadow-db.png
similarity index 100%
rename from apps/docs/public/docs/v6/orm/prisma-migrate/understanding-prisma-migrate/shadow-db.png
rename to apps/docs/public/img/v6/orm/prisma-migrate/understanding-prisma-migrate/shadow-db.png
diff --git a/apps/docs/public/docs/v6/orm/prisma-migrate/workflows/deploy-db.png b/apps/docs/public/img/v6/orm/prisma-migrate/workflows/deploy-db.png
similarity index 100%
rename from apps/docs/public/docs/v6/orm/prisma-migrate/workflows/deploy-db.png
rename to apps/docs/public/img/v6/orm/prisma-migrate/workflows/deploy-db.png
diff --git a/apps/docs/public/docs/v6/orm/prisma-migrate/workflows/existing-database.png b/apps/docs/public/img/v6/orm/prisma-migrate/workflows/existing-database.png
similarity index 100%
rename from apps/docs/public/docs/v6/orm/prisma-migrate/workflows/existing-database.png
rename to apps/docs/public/img/v6/orm/prisma-migrate/workflows/existing-database.png
diff --git a/apps/docs/public/docs/v6/orm/prisma-migrate/workflows/migrate-team-dev.png b/apps/docs/public/img/v6/orm/prisma-migrate/workflows/migrate-team-dev.png
similarity index 100%
rename from apps/docs/public/docs/v6/orm/prisma-migrate/workflows/migrate-team-dev.png
rename to apps/docs/public/img/v6/orm/prisma-migrate/workflows/migrate-team-dev.png
diff --git a/apps/docs/public/docs/v6/orm/prisma-migrate/workflows/migration-history.png b/apps/docs/public/img/v6/orm/prisma-migrate/workflows/migration-history.png
similarity index 100%
rename from apps/docs/public/docs/v6/orm/prisma-migrate/workflows/migration-history.png
rename to apps/docs/public/img/v6/orm/prisma-migrate/workflows/migration-history.png
diff --git a/apps/docs/public/docs/v6/orm/prisma-migrate/workflows/new-dev-db.png b/apps/docs/public/img/v6/orm/prisma-migrate/workflows/new-dev-db.png
similarity index 100%
rename from apps/docs/public/docs/v6/orm/prisma-migrate/workflows/new-dev-db.png
rename to apps/docs/public/img/v6/orm/prisma-migrate/workflows/new-dev-db.png
diff --git a/apps/docs/public/docs/v6/orm/prisma-schema/data-model/relations/one-to-many.png b/apps/docs/public/img/v6/orm/prisma-schema/data-model/relations/one-to-many.png
similarity index 100%
rename from apps/docs/public/docs/v6/orm/prisma-schema/data-model/relations/one-to-many.png
rename to apps/docs/public/img/v6/orm/prisma-schema/data-model/relations/one-to-many.png
diff --git a/apps/docs/public/docs/v6/orm/prisma-schema/data-model/relations/quick-fix-index.png b/apps/docs/public/img/v6/orm/prisma-schema/data-model/relations/quick-fix-index.png
similarity index 100%
rename from apps/docs/public/docs/v6/orm/prisma-schema/data-model/relations/quick-fix-index.png
rename to apps/docs/public/img/v6/orm/prisma-schema/data-model/relations/quick-fix-index.png
diff --git a/apps/docs/public/docs/v6/orm/prisma-schema/data-model/relations/relations-intro.png b/apps/docs/public/img/v6/orm/prisma-schema/data-model/relations/relations-intro.png
similarity index 100%
rename from apps/docs/public/docs/v6/orm/prisma-schema/data-model/relations/relations-intro.png
rename to apps/docs/public/img/v6/orm/prisma-schema/data-model/relations/relations-intro.png
diff --git a/apps/docs/public/docs/v6/orm/prisma-schema/data-model/relations/sample-schema.png b/apps/docs/public/img/v6/orm/prisma-schema/data-model/relations/sample-schema.png
similarity index 100%
rename from apps/docs/public/docs/v6/orm/prisma-schema/data-model/relations/sample-schema.png
rename to apps/docs/public/img/v6/orm/prisma-schema/data-model/relations/sample-schema.png
diff --git a/apps/docs/scripts/lint-images.ts b/apps/docs/scripts/lint-images.ts
new file mode 100644
index 0000000000..2c0b59c35c
--- /dev/null
+++ b/apps/docs/scripts/lint-images.ts
@@ -0,0 +1,175 @@
+#!/usr/bin/env npx tsx
+
+import fs from "node:fs";
+import path from "node:path";
+import { fileURLToPath } from "node:url";
+
+const __filename = fileURLToPath(import.meta.url);
+const __dirname = path.dirname(__filename);
+
+const CONTENT_DIR = path.join(__dirname, "../content");
+const PUBLIC_DIR = path.join(__dirname, "../public");
+
+const IMAGE_EXTENSIONS = new Set([
+ ".png",
+ ".jpg",
+ ".jpeg",
+ ".gif",
+ ".webp",
+ ".svg",
+ ".avif",
+ ".ico",
+]);
+
+const MARKDOWN_IMAGE_REGEX = /!\[[^\]]*]\(([^)\n]+)\)/g;
+const HTML_IMAGE_REGEX = /]*\bsrc=(["'])(.*?)\1/g;
+
+type Violation = {
+ file: string;
+ line: number;
+ reference: string;
+ checkedPath: string;
+};
+
+function findMdxFiles(dir: string, fileList: string[] = []): string[] {
+ const files = fs.readdirSync(dir);
+
+ for (const file of files) {
+ const filePath = path.join(dir, file);
+ const stat = fs.statSync(filePath);
+
+ if (stat.isDirectory()) {
+ findMdxFiles(filePath, fileList);
+ continue;
+ }
+
+ if (file.endsWith(".mdx")) fileList.push(filePath);
+ }
+
+ return fileList;
+}
+
+function stripCodeBlocks(content: string): string {
+ // Replace fenced code blocks with an equal number of blank lines so
+ // that match.index values stay aligned with the original file's line numbers.
+ return content.replace(/```[\s\S]*?```/g, (match) =>
+ "\n".repeat((match.match(/\n/g) ?? []).length),
+ );
+}
+
+function extractMarkdownUrl(raw: string): string {
+ const trimmed = raw.trim();
+ if (trimmed.startsWith("<") && trimmed.includes(">")) {
+ return trimmed.slice(1, trimmed.indexOf(">")).trim();
+ }
+
+ const [url] = trimmed.split(/\s+/);
+ return url ?? "";
+}
+
+function stripQueryAndHash(url: string): string {
+ return url.split(/[?#]/, 1)[0] ?? "";
+}
+
+function isLocalUrl(url: string): boolean {
+ if (!url) return false;
+ if (
+ url.startsWith("http://") ||
+ url.startsWith("https://") ||
+ url.startsWith("data:") ||
+ url.startsWith("//")
+ ) {
+ return false;
+ }
+ return true;
+}
+
+function hasImageExtension(urlPath: string): boolean {
+ return IMAGE_EXTENSIONS.has(path.extname(urlPath).toLowerCase());
+}
+
+function toPublicPath(urlPath: string): string | null {
+ if (urlPath.startsWith("/docs/")) {
+ urlPath = urlPath.slice("/docs".length);
+ }
+
+ if (urlPath.startsWith("/")) {
+ return path.join(PUBLIC_DIR, urlPath.slice(1));
+ }
+
+ // This linter validates public assets only.
+ return null;
+}
+
+function lineNumberAt(content: string, index: number): number {
+ return content.slice(0, index).split("\n").length;
+}
+
+function collectViolations(filePath: string): Violation[] {
+ const rawContent = fs.readFileSync(filePath, "utf8");
+ const content = stripCodeBlocks(rawContent);
+ const violations: Violation[] = [];
+
+ const relativeFile = path.relative(process.cwd(), filePath);
+
+ for (const regex of [MARKDOWN_IMAGE_REGEX, HTML_IMAGE_REGEX]) {
+ regex.lastIndex = 0;
+ let match: RegExpExecArray | null;
+
+ while ((match = regex.exec(content)) !== null) {
+ const rawUrl = regex === MARKDOWN_IMAGE_REGEX ? match[1] : match[2];
+ const extracted = regex === MARKDOWN_IMAGE_REGEX ? extractMarkdownUrl(rawUrl) : rawUrl;
+ const normalized = stripQueryAndHash(extracted);
+
+ if (!isLocalUrl(normalized) || !hasImageExtension(normalized)) continue;
+
+ const resolvedPublicPath = toPublicPath(normalized);
+ if (!resolvedPublicPath) continue;
+
+ if (!fs.existsSync(resolvedPublicPath)) {
+ violations.push({
+ file: relativeFile,
+ line: lineNumberAt(content, match.index),
+ reference: normalized,
+ checkedPath: path.relative(process.cwd(), resolvedPublicPath),
+ });
+ }
+ }
+ }
+
+ return violations;
+}
+
+function main(): void {
+ if (!fs.existsSync(CONTENT_DIR)) {
+ console.error(`Content directory not found: ${CONTENT_DIR}`);
+ process.exit(1);
+ }
+
+ if (!fs.existsSync(PUBLIC_DIR)) {
+ console.error(`Public directory not found: ${PUBLIC_DIR}`);
+ process.exit(1);
+ }
+
+ const files = findMdxFiles(CONTENT_DIR);
+ const violations = files.flatMap((file) => collectViolations(file));
+
+ if (violations.length === 0) {
+ console.log("✅ All local image references in content resolve to public assets.");
+ process.exit(0);
+ }
+
+ console.error(
+ `❌ Found ${violations.length} local image reference(s) that do not exist in public:\n`,
+ );
+
+ for (const violation of violations) {
+ console.error(`${violation.file}:${violation.line}`);
+ console.error(` reference: ${violation.reference}`);
+ console.error(` expected: ${violation.checkedPath}`);
+ }
+
+ process.exit(1);
+}
+
+main();
diff --git a/apps/docs/src/mdx-components.tsx b/apps/docs/src/mdx-components.tsx
index 3c8c3b1e5d..b764b8b9f5 100644
--- a/apps/docs/src/mdx-components.tsx
+++ b/apps/docs/src/mdx-components.tsx
@@ -1,5 +1,6 @@
import defaultMdxComponents from "fumadocs-ui/mdx";
import { APIPage } from "@/components/api-page";
+import { withDocsBasePath } from "@/lib/urls";
import type { MDXComponents } from "mdx/types";
import { ImageZoom } from "fumadocs-ui/components/image-zoom";
@@ -29,6 +30,13 @@ import {
Input,
} from "@prisma-docs/eclipse";
+function withDocsBasePathForImageSrc(src: unknown): unknown {
+ if (typeof src !== "string") return src;
+ if (!src.startsWith("/")) return src;
+ if (src.startsWith("/_next/")) return src;
+ return withDocsBasePath(src);
+}
+
export function getMDXComponents(components?: MDXComponents): MDXComponents {
const mdxComponents = {
...(icons as unknown as MDXComponents),
@@ -48,7 +56,12 @@ export function getMDXComponents(components?: MDXComponents): MDXComponents {
Accordion,
Accordions,
APIPage,
- img: (props: any) => ,
+ img: (props: any) => (
+
+ ),
input: (props: any) => ,
};