跳到主要内容

连接 URL

Prisma ORM 需要连接 URL 才能连接到您的数据库,例如,当使用 Prisma Client 发送查询或使用 Prisma Migrate 更改数据库架构时。

连接 URL 通过 Prisma schema 中 datasource 块的 url 字段提供。它通常由以下组件组成(SQLite 和 Prisma Postgres 除外)

  • 用户:您的数据库用户名
  • 密码:您的数据库用户密码
  • 主机:运行数据库服务器的机器的 IP 或域名
  • 端口:数据库服务器运行的端口
  • 数据库名称:您要使用的数据库的名称

请确保在开始使用 Prisma ORM 时手头有这些信息。如果您还没有运行数据库服务器,您可以选择使用本地 SQLite 数据库文件(请参阅快速入门)或使用 Prisma Postgres 设置免费的 PostgreSQL 数据库

格式

连接 URL 的格式取决于您正在使用的数据库连接器。Prisma ORM 通常支持每个数据库的标准格式。您可以在专门的文档页面上找到有关数据库连接 URL 的更多信息

特殊字符

对于 MySQL、PostgreSQL 和 CockroachDB,您必须百分比编码特殊字符在连接 URL 的任何部分中 - 包括密码。例如,p@$$w0rd 变为 p%40%24%24w0rd

对于 Microsoft SQL Server,您必须转义特殊字符在连接字符串的任何部分中。

示例

以下是 Prisma ORM 支持的数据库的连接 URL 示例

Prisma Postgres

Prisma Postgres 使用特殊的连接字符串格式。它不需要像传统 PostgreSQL 数据库那样的用户名/密码。相反,身份验证通过 API 密钥工作

schema.prisma
datasource db {
provider = "postgresql"
url = "prisma+postgres://accelerate.prisma-data.net/?api_key=API_KEY"
}

在此代码片段中,API_KEY 是占位符,用于您通过以下方式设置新的 Prismas Postgres 实例时收到的 API 密钥. 以下是 Prisma Postgres 的真实连接 URL 示例

schema.prisma
datasource db {
provider = "postgresql"
url = "prisma+postgres://accelerate.prisma-data.net/?api_key=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJhcGlfa2V5IjoiMGNkZTFlMjQtNzhiYi00NTY4LTkyM2EtNWUwOTEzZWUyNjU1IiwidGVuYW50X2lkIjoiNzEyZWRlZTc1Y2U2MDk2ZjI4NDg3YjE4NWMyYzA2OTNhNGMxNzJkMjhhOWFlNGUwZTYxNWE4NWIxZWY1YjBkMCIsImludGVybmFsX3NlY3JldCI6IjA4MzQ2Y2RlLWI5ZjktNDQ4Yy04NThmLTMxNjg4ODEzNmEzZCJ9.N1Za6q6NfInzHvRkud6Ojt_-RFg18a0601vdYWGKOrk"
}

PostgreSQL

schema.prisma
datasource db {
provider = "postgresql"
url = "postgresql://janedoe:mypassword@localhost:5432/mydb?schema=sample"
}

MySQL

schema.prisma
datasource db {
provider = "mysql"
url = "mysql://janedoe:mypassword@localhost:3306/mydb"
}

Microsoft SQL Server

schema.prisma
datasource db {
provider = "sqlserver"
url = "sqlserver://localhost:1433;initial catalog=sample;user=sa;password=mypassword;"
}

SQLite

schema.prisma
datasource db {
provider = "sqlite"
url = "file:./dev.db"
}

CockroachDB

schema.prisma
datasource db {
provider = "cockroachdb"
url = "postgresql://janedoe:mypassword@localhost:26257/mydb?schema=public"
}

MongoDB

schema.prisma
datasource db {
provider = "mongodb"
url = "mongodb+srv://root:<password>@cluster0.ab1cd.mongodb.net/myDatabase?retryWrites=true&w=majority"
}

.env

您还可以将连接 URL 作为环境变量提供

schema.prisma
datasource db {
provider = "postgresql"
url = env("DATABASE_URL")
}

然后,您可以选择在终端中设置环境变量,或者通过提供名为 .envdotenv 文件来设置。Prisma CLI 将自动拾取它。

Prisma ORM 在以下情况下从 dotenv 文件读取连接 URL

  • 在构建时更新 schema 时
  • 在运行时连接到数据库时
DATABASE_URL=postgresql://janedoe:mypassword@localhost:5432/mydb