From c15473f8c3f7691aa01cbd9b22b5c574223ab3ba Mon Sep 17 00:00:00 2001 From: Mike Hartington Date: Thu, 19 Feb 2026 21:09:33 -0500 Subject: [PATCH 1/4] chore(): update links and images --- .github/workflows/mxbai.yml | 2 +- .../docs.v6/orm/more/internals/engines.mdx | 6 +- .../overview/databases/database-drivers.mdx | 4 +- .../orm/overview/databases/mongodb.mdx | 2 +- .../docs.v6/orm/overview/databases/mysql.mdx | 2 +- .../orm/overview/databases/postgresql.mdx | 2 +- .../docs.v6/orm/overview/databases/turso.mdx | 8 +- .../orm/overview/introduction/why-prisma.mdx | 4 +- .../prisma-in-your-stack/is-prisma-an-orm.mdx | 4 +- .../overview/prisma-in-your-stack/rest.mdx | 2 +- .../serverless/deploy-to-netlify.mdx | 4 +- .../serverless/deploy-to-vercel.mdx | 2 +- .../traditional/deploy-to-heroku.mdx | 4 +- .../traditional/deploy-to-koyeb.mdx | 6 +- .../traditional/deploy-to-railway.mdx | 8 +- .../traditional/deploy-to-sevalla.mdx | 14 +- .../opentelemetry-tracing.mdx | 4 +- .../databases-connections/index.mdx | 4 +- .../generating-prisma-client.mdx | 4 +- .../testing/integration-testing.mdx | 2 +- .../mental-model.mdx | 18 +- .../shadow-database.mdx | 2 +- .../prisma-migrate/workflows/baselining.mdx | 6 +- .../workflows/native-database-types.mdx | 2 +- .../orm/prisma-schema/data-model/models.mdx | 2 +- .../data-model/relations/index.mdx | 4 +- .../data-model/relations/relation-mode.mdx | 2 +- .../orm/reference/database-features.mdx | 2 +- apps/docs/content/docs/(index)/index.mdx | 4 +- .../orm/prisma-schema/data-model/models.mdx | 2 +- .../docs/orm/reference/database-features.mdx | 2 +- apps/docs/package.json | 1 + .../query-engine-node-js-at-runtime.png | Bin .../typical-flow-query-engine-at-runtime.png | Bin .../drivers/qe-query-engine-adapter.png | Bin .../drivers/qe-query-execution-flow.png | Bin .../embedded-replica-create-replica.png | Bin .../images/embedded-replica-read.png | Bin .../images/embedded-replica-remote-read.png | Bin .../embedded-replica-write-propagation.png | Bin .../v6/orm/overview/databases/mongodb.png | Bin .../databases/mysql-connection-string.png | Bin .../postgresql-connection-string.png | Bin .../node-js-db-tools-tradeoffs.png | Bin .../prisma-makes-devs-productive.png | Bin .../introduction/prisma-rest-apis.png | Bin .../introduction/user-post-relation-1-n.png | Bin .../orm/overview/introduction/user-table.png | Bin .../orm/overview/introduction/user-table.svg | 0 .../edge/images/450-03-import-project.png | Bin .../edge/images/450-04-connect-db.png | Bin .../edge/images/450-05-data-proxy.png | Bin .../edge/images/550-01-create-repo.png | Bin ...0-02-deploy-to-deno-project-parameters.png | Bin .../300-00-deploy-to-vercel-architecture.png | Bin .../300-10-deploy-to-vercel-deploy-button.png | Bin .../300-20-deploy-to-vercel-select-github.png | Bin ...00-30-deploy-to-vercel-create-git-repo.png | Bin ...-40-deploy-to-vercel-configure-project.png | Bin .../300-50-deploy-to-vercel-success.png | Bin ...to-vercel-preview-environment-variable.png | Bin ...deploy-to-vercel-environment-variables.png | Bin .../500-01-deploy-to-netlify-architecture.png | Bin ...loy-to-netlify-example-repo-click-fork.png | Bin ...-netlify-example-repo-create-fork-page.png | Bin ...etlify-copy-supabase-connection-string.png | Bin ...to-netlify-netlify-init-configure-site.png | Bin ...500-06-deploy-to-netlify-site-settings.png | Bin ...netlify-environment-variables-settings.png | Bin ...deploy-to-netlify-application-deployed.png | Bin ...tlify-application-deployed-call-result.png | Bin .../images/heroku-architecture.png | Bin .../traditional/images/heroku-deployed.png | Bin .../traditional/images/koyeb-app-creation.png | Bin .../traditional/images/koyeb-architecture.png | Bin .../traditional/images/koyeb-deployed.png | Bin .../traditional/images/railway-deploying.png | Bin .../traditional/images/railway-env-vars.png | Bin .../images/railway-final-product.png | Bin .../traditional/images/railway-networking.png | Bin .../images/sevalla-app-creation.png | Bin .../sevalla-app-internal-connection.png | Bin .../images/sevalla-choose-repository.png | Bin .../images/sevalla-create-database.png | Bin .../images/sevalla-database-studio.png | Bin .../images/sevalla-name-application.png | Bin .../images/sevalla-web-terminal.png | Bin .../observability-and-logging/jaeger.png | Bin .../trace-diagram.png | Bin .../serverless-connections-2.png | Bin .../serverless-connections.png | Bin .../prisma-client-generation-workflow.png | Bin .../prisma-client-node-module.png | Bin .../testing/Docker_Diagram_V1.png | Bin .../database-first-migration-flow.png | Bin .../db-push-flow.png | Bin .../entity-first-migration-flow.png | Bin .../prisma-migrate-dev-flow.png | Bin .../prisma-migrate-diff-flow.png | Bin .../prisma-migrate-lifecycle.png | Bin .../prisma-migrate-state-mgt.png | Bin .../migrate-mapping.png | Bin .../shadow-database.png | Bin .../shadow-db.png | Bin .../prisma-migrate/workflows/deploy-db.png | Bin .../workflows/existing-database.png | Bin .../workflows/migrate-team-dev.png | Bin .../workflows/migration-history.png | Bin .../prisma-migrate/workflows/new-dev-db.png | Bin .../data-model/relations/one-to-many.png | Bin .../data-model/relations/quick-fix-index.png | Bin .../data-model/relations/relations-intro.png | Bin .../data-model/relations/sample-schema.png | Bin apps/docs/scripts/lint-images.ts | 172 ++++++++++++++++++ apps/docs/src/mdx-components.tsx | 15 +- 115 files changed, 254 insertions(+), 68 deletions(-) rename apps/docs/public/{docs => img}/v6/orm/more/internals/query-engine-node-js-at-runtime.png (100%) rename apps/docs/public/{docs => img}/v6/orm/more/internals/typical-flow-query-engine-at-runtime.png (100%) rename apps/docs/public/{docs => img}/v6/orm/overview/databases/images/drivers/qe-query-engine-adapter.png (100%) rename apps/docs/public/{docs => img}/v6/orm/overview/databases/images/drivers/qe-query-execution-flow.png (100%) rename apps/docs/public/{docs => img}/v6/orm/overview/databases/images/embedded-replica-create-replica.png (100%) rename apps/docs/public/{docs => img}/v6/orm/overview/databases/images/embedded-replica-read.png (100%) rename apps/docs/public/{docs => img}/v6/orm/overview/databases/images/embedded-replica-remote-read.png (100%) rename apps/docs/public/{docs => img}/v6/orm/overview/databases/images/embedded-replica-write-propagation.png (100%) rename apps/docs/public/{docs => img}/v6/orm/overview/databases/mongodb.png (100%) rename apps/docs/public/{docs => img}/v6/orm/overview/databases/mysql-connection-string.png (100%) rename apps/docs/public/{docs => img}/v6/orm/overview/databases/postgresql-connection-string.png (100%) rename apps/docs/public/{docs => img}/v6/orm/overview/introduction/node-js-db-tools-tradeoffs.png (100%) rename apps/docs/public/{docs => img}/v6/orm/overview/introduction/prisma-makes-devs-productive.png (100%) rename apps/docs/public/{docs => img}/v6/orm/overview/introduction/prisma-rest-apis.png (100%) rename apps/docs/public/{docs => img}/v6/orm/overview/introduction/user-post-relation-1-n.png (100%) rename apps/docs/public/{docs => img}/v6/orm/overview/introduction/user-table.png (100%) rename apps/docs/public/{docs => img}/v6/orm/overview/introduction/user-table.svg (100%) rename apps/docs/public/{docs => img}/v6/orm/prisma-client/deployment/edge/images/450-03-import-project.png (100%) rename apps/docs/public/{docs => img}/v6/orm/prisma-client/deployment/edge/images/450-04-connect-db.png (100%) rename apps/docs/public/{docs => img}/v6/orm/prisma-client/deployment/edge/images/450-05-data-proxy.png (100%) rename apps/docs/public/{docs => img}/v6/orm/prisma-client/deployment/edge/images/550-01-create-repo.png (100%) rename apps/docs/public/{docs => img}/v6/orm/prisma-client/deployment/edge/images/550-02-deploy-to-deno-project-parameters.png (100%) rename apps/docs/public/{docs => img}/v6/orm/prisma-client/deployment/serverless/images/300-00-deploy-to-vercel-architecture.png (100%) rename apps/docs/public/{docs => img}/v6/orm/prisma-client/deployment/serverless/images/300-10-deploy-to-vercel-deploy-button.png (100%) rename apps/docs/public/{docs => img}/v6/orm/prisma-client/deployment/serverless/images/300-20-deploy-to-vercel-select-github.png (100%) rename apps/docs/public/{docs => img}/v6/orm/prisma-client/deployment/serverless/images/300-30-deploy-to-vercel-create-git-repo.png (100%) rename apps/docs/public/{docs => img}/v6/orm/prisma-client/deployment/serverless/images/300-40-deploy-to-vercel-configure-project.png (100%) rename apps/docs/public/{docs => img}/v6/orm/prisma-client/deployment/serverless/images/300-50-deploy-to-vercel-success.png (100%) rename apps/docs/public/{docs => img}/v6/orm/prisma-client/deployment/serverless/images/300-60-deploy-to-vercel-preview-environment-variable.png (100%) rename apps/docs/public/{docs => img}/v6/orm/prisma-client/deployment/serverless/images/300-70-deploy-to-vercel-environment-variables.png (100%) rename apps/docs/public/{docs => img}/v6/orm/prisma-client/deployment/serverless/images/500-01-deploy-to-netlify-architecture.png (100%) rename apps/docs/public/{docs => img}/v6/orm/prisma-client/deployment/serverless/images/500-02-deploy-to-netlify-example-repo-click-fork.png (100%) rename apps/docs/public/{docs => img}/v6/orm/prisma-client/deployment/serverless/images/500-03-deploy-to-netlify-example-repo-create-fork-page.png (100%) rename apps/docs/public/{docs => img}/v6/orm/prisma-client/deployment/serverless/images/500-04-deploy-to-netlify-copy-supabase-connection-string.png (100%) rename apps/docs/public/{docs => img}/v6/orm/prisma-client/deployment/serverless/images/500-05-deploy-to-netlify-netlify-init-configure-site.png (100%) rename apps/docs/public/{docs => img}/v6/orm/prisma-client/deployment/serverless/images/500-06-deploy-to-netlify-site-settings.png (100%) rename apps/docs/public/{docs => img}/v6/orm/prisma-client/deployment/serverless/images/500-07-deploy-to-netlify-environment-variables-settings.png (100%) rename apps/docs/public/{docs => img}/v6/orm/prisma-client/deployment/serverless/images/500-08-deploy-to-netlify-application-deployed.png (100%) rename apps/docs/public/{docs => img}/v6/orm/prisma-client/deployment/serverless/images/500-09-deploy-to-netlify-application-deployed-call-result.png (100%) rename apps/docs/public/{docs => img}/v6/orm/prisma-client/deployment/traditional/images/heroku-architecture.png (100%) rename apps/docs/public/{docs => img}/v6/orm/prisma-client/deployment/traditional/images/heroku-deployed.png (100%) rename apps/docs/public/{docs => img}/v6/orm/prisma-client/deployment/traditional/images/koyeb-app-creation.png (100%) rename apps/docs/public/{docs => img}/v6/orm/prisma-client/deployment/traditional/images/koyeb-architecture.png (100%) rename apps/docs/public/{docs => img}/v6/orm/prisma-client/deployment/traditional/images/koyeb-deployed.png (100%) rename apps/docs/public/{docs => img}/v6/orm/prisma-client/deployment/traditional/images/railway-deploying.png (100%) rename apps/docs/public/{docs => img}/v6/orm/prisma-client/deployment/traditional/images/railway-env-vars.png (100%) rename apps/docs/public/{docs => img}/v6/orm/prisma-client/deployment/traditional/images/railway-final-product.png (100%) rename apps/docs/public/{docs => img}/v6/orm/prisma-client/deployment/traditional/images/railway-networking.png (100%) rename apps/docs/public/{docs => img}/v6/orm/prisma-client/deployment/traditional/images/sevalla-app-creation.png (100%) rename apps/docs/public/{docs => img}/v6/orm/prisma-client/deployment/traditional/images/sevalla-app-internal-connection.png (100%) rename apps/docs/public/{docs => img}/v6/orm/prisma-client/deployment/traditional/images/sevalla-choose-repository.png (100%) rename apps/docs/public/{docs => img}/v6/orm/prisma-client/deployment/traditional/images/sevalla-create-database.png (100%) rename apps/docs/public/{docs => img}/v6/orm/prisma-client/deployment/traditional/images/sevalla-database-studio.png (100%) rename apps/docs/public/{docs => img}/v6/orm/prisma-client/deployment/traditional/images/sevalla-name-application.png (100%) rename apps/docs/public/{docs => img}/v6/orm/prisma-client/deployment/traditional/images/sevalla-web-terminal.png (100%) rename apps/docs/public/{docs => img}/v6/orm/prisma-client/observability-and-logging/jaeger.png (100%) rename apps/docs/public/{docs => img}/v6/orm/prisma-client/observability-and-logging/trace-diagram.png (100%) rename apps/docs/public/{docs => img}/v6/orm/prisma-client/setup-and-configuration/databases-connections/serverless-connections-2.png (100%) rename apps/docs/public/{docs => img}/v6/orm/prisma-client/setup-and-configuration/databases-connections/serverless-connections.png (100%) rename apps/docs/public/{docs => img}/v6/orm/prisma-client/setup-and-configuration/prisma-client-generation-workflow.png (100%) rename apps/docs/public/{docs => img}/v6/orm/prisma-client/setup-and-configuration/prisma-client-node-module.png (100%) rename apps/docs/public/{docs => img}/v6/orm/prisma-client/testing/Docker_Diagram_V1.png (100%) rename apps/docs/public/{docs => img}/v6/orm/prisma-migrate/understanding-prisma-migrate/mental-model-illustrations/database-first-migration-flow.png (100%) rename apps/docs/public/{docs => img}/v6/orm/prisma-migrate/understanding-prisma-migrate/mental-model-illustrations/db-push-flow.png (100%) rename apps/docs/public/{docs => img}/v6/orm/prisma-migrate/understanding-prisma-migrate/mental-model-illustrations/entity-first-migration-flow.png (100%) rename apps/docs/public/{docs => img}/v6/orm/prisma-migrate/understanding-prisma-migrate/mental-model-illustrations/prisma-migrate-dev-flow.png (100%) rename apps/docs/public/{docs => img}/v6/orm/prisma-migrate/understanding-prisma-migrate/mental-model-illustrations/prisma-migrate-diff-flow.png (100%) rename apps/docs/public/{docs => img}/v6/orm/prisma-migrate/understanding-prisma-migrate/mental-model-illustrations/prisma-migrate-lifecycle.png (100%) rename apps/docs/public/{docs => img}/v6/orm/prisma-migrate/understanding-prisma-migrate/mental-model-illustrations/prisma-migrate-state-mgt.png (100%) rename apps/docs/public/{docs => img}/v6/orm/prisma-migrate/understanding-prisma-migrate/migrate-mapping.png (100%) rename apps/docs/public/{docs => img}/v6/orm/prisma-migrate/understanding-prisma-migrate/shadow-database.png (100%) rename apps/docs/public/{docs => img}/v6/orm/prisma-migrate/understanding-prisma-migrate/shadow-db.png (100%) rename apps/docs/public/{docs => img}/v6/orm/prisma-migrate/workflows/deploy-db.png (100%) rename apps/docs/public/{docs => img}/v6/orm/prisma-migrate/workflows/existing-database.png (100%) rename apps/docs/public/{docs => img}/v6/orm/prisma-migrate/workflows/migrate-team-dev.png (100%) rename apps/docs/public/{docs => img}/v6/orm/prisma-migrate/workflows/migration-history.png (100%) rename apps/docs/public/{docs => img}/v6/orm/prisma-migrate/workflows/new-dev-db.png (100%) rename apps/docs/public/{docs => img}/v6/orm/prisma-schema/data-model/relations/one-to-many.png (100%) rename apps/docs/public/{docs => img}/v6/orm/prisma-schema/data-model/relations/quick-fix-index.png (100%) rename apps/docs/public/{docs => img}/v6/orm/prisma-schema/data-model/relations/relations-intro.png (100%) rename apps/docs/public/{docs => img}/v6/orm/prisma-schema/data-model/relations/sample-schema.png (100%) create mode 100644 apps/docs/scripts/lint-images.ts diff --git a/.github/workflows/mxbai.yml b/.github/workflows/mxbai.yml index af8e9fec68..ce4d815092 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_KEYY: ${{ 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: -![Prisma engine](/docs/v6/orm/more/internals/typical-flow-query-engine-at-runtime.png) +![Prisma engine](/img/v6/orm/more/internals/typical-flow-query-engine-at-runtime.png) ### 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. -![Diagram showing the query engine and Node.js at runtime](/docs/v6/orm/more/internals/query-engine-node-js-at-runtime.png) +![Diagram showing the query engine and Node.js at runtime](/img/v6/orm/more/internals/query-engine-node-js-at-runtime.png) 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 -![Typical flow of the query engine at run time](/docs/v6/orm/more/internals/typical-flow-query-engine-at-runtime.png) +![Typical flow of the query engine at run time](/img/v6/orm/more/internals/typical-flow-query-engine-at-runtime.png) ## 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 ::: -![Query flow from the user application to the database with Prisma Client](/docs/v6/orm/overview/databases/images/drivers/qe-query-execution-flow.png) +![Query flow from the user application to the database with Prisma Client](/img/v6/orm/overview/databases/images/drivers/qe-query-execution-flow.png) ## 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. -![Query flow from the user application to the database using Prisma Client and driver adapters](/docs/v6/orm/overview/databases/images/drivers/qe-query-engine-adapter.png) +![Query flow from the user application to the database using Prisma Client and driver adapters](/img/v6/orm/overview/databases/images/drivers/qe-query-engine-adapter.png) 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: -![Structure of the MongoDB connection URL](/docs/v6/orm/overview/databases/mongodb.png) +![Structure of the MongoDB connection URL](/img/v6/orm/overview/databases/mongodb.png) #### 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: -![Structure of the MySQL connection URL](/docs/v6/orm/overview/databases/mysql-connection-string.png) +![Structure of the MySQL connection URL](/img/v6/orm/overview/databases/mysql-connection-string.png) #### 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: -![Structure of the PostgreSQL connection URL](/docs/v6/orm/overview/databases/postgresql-connection-string.png) +![Structure of the PostgreSQL connection URL](/img/v6/orm/overview/databases/postgresql-connection-string.png) #### 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: -![Embedded Replica: First remote read](/docs/v6/orm/overview/databases/images/embedded-replica-remote-read.png) +![Embedded Replica: First remote read](/img/v6/orm/overview/databases/images/embedded-replica-remote-read.png) 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: -![Embedded Replica: Remote DB Copy](/docs/v6/orm/overview/databases/images/embedded-replica-create-replica.png) +![Embedded Replica: Remote DB Copy](/img/v6/orm/overview/databases/images/embedded-replica-create-replica.png) 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. -![Embedded Replica: Local DB reads](/docs/v6/orm/overview/databases/images/embedded-replica-read.png) +![Embedded Replica: Local DB reads](/img/v6/orm/overview/databases/images/embedded-replica-read.png) 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. -![Embedded Replica: Write operation propagation](/docs/v6/orm/overview/databases/images/embedded-replica-write-propagation.png) +![Embedded Replica: Write operation propagation](/img/v6/orm/overview/databases/images/embedded-replica-write-propagation.png) 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_. -![Productivity vs Control in ORMs, SQL query builders, and SQL](/docs/v6/orm/overview/introduction/node-js-db-tools-tradeoffs.png) +![Productivity vs Control in ORMs, SQL query builders, and SQL](/img/v6/orm/overview/introduction/node-js-db-tools-tradeoffs.png) ### 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: -![Prisma ORM makes developers productive](/docs/v6/orm/overview/introduction/prisma-makes-devs-productive.png) +![Prisma ORM makes developers productive](/img/v6/orm/overview/introduction/prisma-makes-devs-productive.png) 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: -![Database User table schema with id, first_name, last_name, and email columns.](/docs/v6/orm/overview/introduction/user-table.png) +![Database User table schema with id, first_name, last_name, and email columns.](/img/v6/orm/overview/introduction/user-table.png) 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: -![1-n relation between User and Post](/docs/v6/orm/overview/introduction/user-post-relation-1-n.png) +![1-n relation between User and Post](/img/v6/orm/overview/introduction/user-post-relation-1-n.png) 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. -![REST APIs with Prisma Client](/docs/v6/orm/overview/introduction/prisma-rest-apis.png) +![REST APIs with Prisma Client](/img/v6/orm/overview/introduction/prisma-rest-apis.png) ## 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**: - ![Netlify admin UI](/docs/v6/orm/prisma-client/deployment/serverless/images/500-06-deploy-to-netlify-site-settings.png) + ![Netlify admin UI](/img/v6/orm/prisma-client/deployment/serverless/images/500-06-deploy-to-netlify-site-settings.png) 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. - ![Netlify environment variables](/docs/v6/orm/prisma-client/deployment/serverless/images/500-07-deploy-to-netlify-environment-variables-settings.png) + ![Netlify environment variables](/img/v6/orm/prisma-client/deployment/serverless/images/500-07-deploy-to-netlify-environment-variables-settings.png) 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: - ![Add an environment variable for the preview environment](/docs/v6/orm/prisma-client/deployment/serverless/images/300-60-deploy-to-vercel-preview-environment-variable.png) + ![Add an environment variable for the preview environment](/img/v6/orm/prisma-client/deployment/serverless/images/300-60-deploy-to-vercel-preview-environment-variable.png) 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. -![Heroku deployment architecture diagram showing a Node.js backend with Prisma Client, static frontend, and PostgreSQL database.](/docs/v6/orm/prisma-client/deployment/traditional/images/heroku-architecture.png) +![Heroku deployment architecture diagram showing a Node.js backend with Prisma Client, static frontend, and PostgreSQL database.](/img/v6/orm/prisma-client/deployment/traditional/images/heroku-architecture.png) 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: -![Deployed Prisma app frontend in browser showing Check API status, Seed data, and Load feed buttons.](/docs/v6/orm/prisma-client/deployment/traditional/images/heroku-deployed.png) +![Deployed Prisma app frontend in browser showing Check API status, Seed data, and Load feed buttons.](/img/v6/orm/prisma-client/deployment/traditional/images/heroku-deployed.png) 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. -![Koyeb deployment architecture diagram showing a Node.js backend with Prisma Client, static frontend, and PostgreSQL database.](/docs/v6/orm/prisma-client/deployment/traditional/images/koyeb-architecture.png) +![Koyeb deployment architecture diagram showing a Node.js backend with Prisma Client, static frontend, and PostgreSQL database.](/img/v6/orm/prisma-client/deployment/traditional/images/koyeb-architecture.png) 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}` -![Koyeb app creation interface showing environment variables configuration and Create App button.](/docs/v6/orm/prisma-client/deployment/traditional/images/koyeb-app-creation.png) +![Koyeb app creation interface showing environment variables configuration and Create App button.](/img/v6/orm/prisma-client/deployment/traditional/images/koyeb-app-creation.png) 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: -![Deployed Prisma app frontend in browser showing Check API status, Seed data, and Load feed buttons.](/docs/v6/orm/prisma-client/deployment/traditional/images/koyeb-deployed.png) +![Deployed Prisma app frontend in browser showing Check API status, Seed data, and Load feed buttons.](/img/v6/orm/prisma-client/deployment/traditional/images/koyeb-deployed.png) 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. -![Railway deploying application](/docs/v6/orm/prisma-client/deployment/traditional/images/railway-deploying.png) +![Railway deploying application](/img/v6/orm/prisma-client/deployment/traditional/images/railway-deploying.png) ## 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 -![Railway environment variables setup](/docs/v6/orm/prisma-client/deployment/traditional/images/railway-env-vars.png) +![Railway environment variables setup](/img/v6/orm/prisma-client/deployment/traditional/images/railway-env-vars.png) ### 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 -![Railway networking settings](/docs/v6/orm/prisma-client/deployment/traditional/images/railway-networking.png) +![Railway networking settings](/img/v6/orm/prisma-client/deployment/traditional/images/railway-networking.png) 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`) -![Railway deployed application](/docs/v6/orm/prisma-client/deployment/traditional/images/railway-final-product.png) +![Railway deployed application](/img/v6/orm/prisma-client/deployment/traditional/images/railway-final-product.png) 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. -![Sevalla app creation interface](/docs/v6/orm/prisma-client/deployment/traditional/images/sevalla-app-creation.png) +![Sevalla app creation interface](/img/v6/orm/prisma-client/deployment/traditional/images/sevalla-app-creation.png) 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 repository interface in Sevalla](/docs/v6/orm/prisma-client/deployment/traditional/images/sevalla-choose-repository.png) +![Choose repository interface in Sevalla](/img/v6/orm/prisma-client/deployment/traditional/images/sevalla-choose-repository.png) 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) -![Name application interface in Sevalla](/docs/v6/orm/prisma-client/deployment/traditional/images/sevalla-name-application.png) +![Name application interface in Sevalla](/img/v6/orm/prisma-client/deployment/traditional/images/sevalla-name-application.png) 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. -![Create database interface in Sevalla](/docs/v6/orm/prisma-client/deployment/traditional/images/sevalla-create-database.png) +![Create database interface in Sevalla](/img/v6/orm/prisma-client/deployment/traditional/images/sevalla-create-database.png) 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). -![App internal connection interface in Sevalla](/docs/v6/orm/prisma-client/deployment/traditional/images/sevalla-app-internal-connection.png) +![App internal connection interface in Sevalla](/img/v6/orm/prisma-client/deployment/traditional/images/sevalla-app-internal-connection.png) 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: -![Sevalla web terminal interface](/docs/v6/orm/prisma-client/deployment/traditional/images/sevalla-web-terminal.png) +![Sevalla web terminal interface](/img/v6/orm/prisma-client/deployment/traditional/images/sevalla-web-terminal.png) 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: -![Sevalla database studio interface](/docs/v6/orm/prisma-client/deployment/traditional/images/sevalla-database-studio.png) +![Sevalla database studio interface](/img/v6/orm/prisma-client/deployment/traditional/images/sevalla-database-studio.png) 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: -![Example Prisma Client trace structure showing parent and child spans for a database operation (serialization, query engine, database query).](/docs/v6/orm/prisma-client/observability-and-logging/trace-diagram.png) +![Example Prisma Client trace structure showing parent and child spans for a database operation (serialization, query engine, database query).](/img/v6/orm/prisma-client/observability-and-logging/trace-diagram.png) 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: -![Jaeger UI](/docs/v6/orm/prisma-client/observability-and-logging/jaeger.png) +![Jaeger UI](/img/v6/orm/prisma-client/observability-and-logging/jaeger.png) 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**: -![An AWS Lambda function connecting to a database.](/docs/v6/orm/prisma-client/setup-and-configuration/databases-connections/serverless-connections.png) +![An AWS Lambda function connecting to a database.](/img/v6/orm/prisma-client/setup-and-configuration/databases-connections/serverless-connections.png) 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: -![Three AWS Lambda function connecting to a database.](/docs/v6/orm/prisma-client/setup-and-configuration/databases-connections/serverless-connections-2.png) +![Three AWS Lambda function connecting to a database.](/img/v6/orm/prisma-client/setup-and-configuration/databases-connections/serverless-connections-2.png) 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: -![Graphical illustration of the typical workflow for generation of Prisma Client](/docs/v6/orm/prisma-client/setup-and-configuration/prisma-client-generation-workflow.png) +![Graphical illustration of the typical workflow for generation of Prisma Client](/img/v6/orm/prisma-client/setup-and-configuration/prisma-client-generation-workflow.png) ## 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 and @prisma folders](/docs/v6/orm/prisma-client/setup-and-configuration/prisma-client-node-module.png) +![The .prisma and @prisma folders](/img/v6/orm/prisma-client/setup-and-configuration/prisma-client-node-module.png) 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 -![Docker compose code pointing towards image of container holding a Postgres database](/docs/v6/orm/prisma-client/testing/Docker_Diagram_V1.png) +![Docker compose code pointing towards image of container holding a Postgres database](/img/v6/orm/prisma-client/testing/Docker_Diagram_V1.png) 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. -![Model-first migration flow](/docs/v6/orm/prisma-migrate/understanding-prisma-migrate/mental-model-illustrations/entity-first-migration-flow.png) +![Model-first migration flow](/img/v6/orm/prisma-migrate/understanding-prisma-migrate/mental-model-illustrations/entity-first-migration-flow.png) - **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. -![Database-first migration flow](/docs/v6/orm/prisma-migrate/understanding-prisma-migrate/mental-model-illustrations/database-first-migration-flow.png) +![Database-first migration flow](/img/v6/orm/prisma-migrate/understanding-prisma-migrate/mental-model-illustrations/database-first-migration-flow.png) :::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` -![Prisma Migrate workflow](/docs/v6/orm/prisma-migrate/understanding-prisma-migrate/mental-model-illustrations/prisma-migrate-lifecycle.png) +![Prisma Migrate workflow](/img/v6/orm/prisma-migrate/understanding-prisma-migrate/mental-model-illustrations/prisma-migrate-lifecycle.png) ## 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. -![Prisma Migrate "state management"](/docs/v6/orm/prisma-migrate/understanding-prisma-migrate/mental-model-illustrations/prisma-migrate-state-mgt.png) +![Prisma Migrate "state management"](/img/v6/orm/prisma-migrate/understanding-prisma-migrate/mental-model-illustrations/prisma-migrate-state-mgt.png) ## 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. -![Prisma Migrate dev flow](/docs/v6/orm/prisma-migrate/understanding-prisma-migrate/mental-model-illustrations/prisma-migrate-dev-flow.png) +![Prisma Migrate dev flow](/img/v6/orm/prisma-migrate/understanding-prisma-migrate/mental-model-illustrations/prisma-migrate-dev-flow.png) 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 -![A cartoon that shows how the shadow database works.](/docs/v6/orm/prisma-migrate/understanding-prisma-migrate/shadow-database.png) +![A cartoon that shows how the shadow database works.](/img/v6/orm/prisma-migrate/understanding-prisma-migrate/shadow-database.png) @@ -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. -![Revert database schema with `migrate diff`](/docs/v6/orm/prisma-migrate/understanding-prisma-migrate/mental-model-illustrations/prisma-migrate-diff-flow.png) +![Revert database schema with `migrate diff`](/img/v6/orm/prisma-migrate/understanding-prisma-migrate/mental-model-illustrations/prisma-migrate-diff-flow.png) 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 -![prisma db push development flow](/docs/v6/orm/prisma-migrate/understanding-prisma-migrate/mental-model-illustrations/db-push-flow.png) +![prisma db push development flow](/img/v6/orm/prisma-migrate/understanding-prisma-migrate/mental-model-illustrations/db-push-flow.png) 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 -![Workflow of Prisma Migrate](/docs/v6/orm/prisma-migrate/workflows/deploy-db.png) +![Workflow of Prisma Migrate](/img/v6/orm/prisma-migrate/workflows/deploy-db.png) 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. -![A cartoon that shows how the shadow database works.](/docs/v6/orm/prisma-migrate/understanding-prisma-migrate/shadow-database.png) +![A cartoon that shows how the shadow database works.](/img/v6/orm/prisma-migrate/understanding-prisma-migrate/shadow-database.png) 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**: -![The image shows a database labelled 'Existing database', and a list of existing database features next to it - 24 tables, 13 relationships, 92 fields, 3 indexes. An arrow labelled 'represented by' connects the database features list to a box that represents a migration. The existing databases's features are represented by a single migration.](/docs/v6/orm/prisma-migrate/workflows/existing-database.png) +![The image shows a database labelled 'Existing database', and a list of existing database features next to it - 24 tables, 13 relationships, 92 fields, 3 indexes. An arrow labelled 'represented by' connects the database features list to a box that represents a migration. The existing databases's features are represented by a single migration.](/img/v6/orm/prisma-migrate/workflows/existing-database.png) :::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**: -![The image shows a migration history with three migrations. Each migration is represented by a file icon and a name, and all migrations are surrounded by a box labelled 'migration history'. The first migration has an additional label: "State of database before Prisma Migrate", and the two remaining migrations are labelled "Generated as part of the Prisma Migrate workflow". An arrow labelled "prisma migrate dev" connects the migration history box to a database labelled "new development database", signifying that all three migrations are applied to the development database - none are skipped.](/docs/v6/orm/prisma-migrate/workflows/new-dev-db.png) +![The image shows a migration history with three migrations. Each migration is represented by a file icon and a name, and all migrations are surrounded by a box labelled 'migration history'. The first migration has an additional label: "State of database before Prisma Migrate", and the two remaining migrations are labelled "Generated as part of the Prisma Migrate workflow". An arrow labelled "prisma migrate dev" connects the migration history box to a database labelled "new development database", signifying that all three migrations are applied to the development database - none are skipped.](/img/v6/orm/prisma-migrate/workflows/new-dev-db.png) 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. -![A migration history represented by three migration files (file icon and name), surrounded by a a box labelled 'migration history'. The first migration is marked 'do not apply', and the second two migrations are marked 'apply'. An arrow labelled with the command 'prisma migrate deploy' points from the migration history to a database labelled 'production'.](/docs/v6/orm/prisma-migrate/workflows/deploy-db.png) +![A migration history represented by three migration files (file icon and name), surrounded by a a box labelled 'migration history'. The first migration is marked 'do not apply', and the second two migrations are marked 'apply'. An arrow labelled with the command 'prisma migrate deploy' points from the migration history to a database labelled 'production'.](/img/v6/orm/prisma-migrate/workflows/deploy-db.png) 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. -![A diagram that shows a Prisma schema on the left (labeled: Prisma schema, models) and a database on the right (labeled: Database, tables). Two parallel arrows connect the schema and the database, showing how '@unique' maps to 'UNIQUE' and '@id' maps to 'PRIMARY KEY'.](/docs/v6/orm/prisma-migrate/understanding-prisma-migrate/migrate-mapping.png) +![A diagram that shows a Prisma schema on the left (labeled: Prisma schema, models) and a database on the right (labeled: Database, tables). Two parallel arrows connect the schema and the database, showing how '@unique' maps to 'UNIQUE' and '@id' maps to 'PRIMARY KEY'.](/img/v6/orm/prisma-migrate/understanding-prisma-migrate/migrate-mapping.png) 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**: -![A one-to-many relationship between a user and posts table.](/docs/v6/orm/prisma-schema/data-model/relations/one-to-many.png) +![A one-to-many relationship between a user and posts table.](/img/v6/orm/prisma-schema/data-model/relations/one-to-many.png) 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: -![The sample schema as an entity relationship diagram](/docs/v6/orm/prisma-schema/data-model/relations/sample-schema.png) +![The sample schema as an entity relationship diagram](/img/v6/orm/prisma-schema/data-model/relations/sample-schema.png) 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: -![The Quick Fix pop-up for adding an index on a relation scalar field in VS Code](/docs/v6/orm/prisma-schema/data-model/relations/quick-fix-index.png) +![The Quick Fix pop-up for adding an index on a relation scalar field in VS Code](/img/v6/orm/prisma-schema/data-model/relations/quick-fix-index.png) ## 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..40c3eea239 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,7 +316,7 @@ 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#-modifier) Make a field a list - [`?`](/orm/reference/prisma-schema-reference) 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..ee8838a131 --- /dev/null +++ b/apps/docs/scripts/lint-images.ts @@ -0,0 +1,172 @@ +#!/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 { + // Avoid false positives from examples in fenced code blocks. + return content.replace(/```[\s\S]*?```/g, ""); +} + +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) => , }; From 09cc44b241e35ec6cfb79c5ce9713c40335848a2 Mon Sep 17 00:00:00 2001 From: Mike Hartington Date: Thu, 19 Feb 2026 21:17:25 -0500 Subject: [PATCH 2/4] Update .github/workflows/mxbai.yml Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com> --- .github/workflows/mxbai.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/mxbai.yml b/.github/workflows/mxbai.yml index ce4d815092..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: - MXBAI_API_KEYY: ${{ secrets.MIXEDBREAD_API_KEY }} + MXBAI_API_KEY: ${{ secrets.MIXEDBREAD_API_KEY }} MIXEDBREAD_VECTOR_STORE_ID: ${{ secrets.MIXEDBREAD_VECTOR_STORE_ID }} From 958e1c1aa55c1b504a3e88afa42597637522d755 Mon Sep 17 00:00:00 2001 From: Mike Hartington Date: Thu, 19 Feb 2026 21:20:33 -0500 Subject: [PATCH 3/4] Apply suggestions from code review Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com> --- apps/docs/content/docs/orm/prisma-schema/data-model/models.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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 40c3eea239..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 @@ -317,7 +317,7 @@ 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: - [`[]`](/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-1) Make a field optional > **Note**: You **cannot** combine type modifiers - optional lists are not supported. From fa7f41f62f4eb94a1716b36b71165d3e29780cd5 Mon Sep 17 00:00:00 2001 From: Mike Hartington Date: Thu, 19 Feb 2026 21:23:45 -0500 Subject: [PATCH 4/4] fix lint script --- apps/docs/scripts/lint-images.ts | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/apps/docs/scripts/lint-images.ts b/apps/docs/scripts/lint-images.ts index ee8838a131..2c0b59c35c 100644 --- a/apps/docs/scripts/lint-images.ts +++ b/apps/docs/scripts/lint-images.ts @@ -50,8 +50,11 @@ function findMdxFiles(dir: string, fileList: string[] = []): string[] { } function stripCodeBlocks(content: string): string { - // Avoid false positives from examples in fenced code blocks. - return content.replace(/```[\s\S]*?```/g, ""); + // 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 {