跳至主要內容

連線 URL

Prisma ORM 需要一個連接網址才能連接到您的資料庫,例如在使用 Prisma Client 發送查詢時,或使用 Prisma Migrate 變更資料庫綱要 (schema) 時。

連接網址是透過 Prisma 設定檔(若為第 6 版則為 Prisma schema)中 datasource 區塊的 url 欄位所提供。它通常由以下組件組成(SQLite 和 Prisma Postgres 除外):

  • 使用者 (User):您的資料庫使用者名稱
  • 密碼 (Password):您的資料庫使用者密碼
  • 主機 (Host):執行資料庫伺服器的機器 IP 位址或網域名稱
  • 連接埠 (Port):您的資料庫伺服器運行的連接埠
  • 資料庫名稱 (Database name):您想要使用的資料庫名稱

在開始使用 Prisma ORM 時,請確保手邊已備妥這些資訊。如果您尚未運行資料庫伺服器,可以使用本機的 SQLite 資料庫檔案(請參閱快速入門),或設定免費的 PostgreSQL 資料庫與 Prisma Postgres

格式

連接網址的格式取決於您所使用的資料庫連接器。Prisma ORM 通常支援各資料庫的標準格式。您可以在專屬的文件頁面上找到有關您資料庫連接網址的更多資訊。

特殊字元

對於 MySQL、PostgreSQL 和 CockroachDB,您必須對連接網址中的任何部分(包括密碼)進行 百分比編碼 (percentage-encode) 特殊字元。例如,p@$$w0rd 會變成 p%40%24%24w0rd

對於 Microsoft SQL Server,您必須對連接字串中的任何部分轉義特殊字元 (escape special characters)

範例

以下是 Prisma ORM 支援的資料庫其連接網址範例:

Prisma Postgres

Prisma Postgres 是一種運行在 unikernel 上的託管式 PostgreSQL 服務。有幾種方法可以連接到 Prisma Postgres:

  • 透過直接 TCP 連接(讓您可以使用任何 ORM 或資料庫工具連接)
  • 透過 Prisma Accelerate(僅支援 Prisma ORM)
  • 本機連接

這些連接字串的格式將於下方說明。

直接 TCP

當您透過直接 TCP 連接 Prisma Postgres 時,連接字串看起來如下:

DATABASE_URL="postgres://USER:PASSWORD@db.prisma.io:5432/?sslmode=require"

當您在下列位置為您的 Prisma Postgres 實例產生憑證時,會提供 USERPASSWORD 值:。以下是包含範例值的範例:

DATABASE_URL="postgres://2f9881cc7eef46f094ac913df34c1fb441502fe66cbe28cc48998d4e6b20336b:sk_QZ3u8fMPFfBzOID4ol-mV@db.prisma.io:5432/?sslmode=require"

透過 Prisma Accelerate (HTTP)

當透過 Prisma Accelerate 連接時,連接字串不需要像傳統連接字串那樣的使用者名稱/密碼。相反地,驗證是透過 API 金鑰進行的:

prisma.config.ts
export default defineConfig({
datasource: {
url: "prisma+postgres://accelerate.prisma-data.net/?api_key=API_KEY"
},
});

在此片段中,API_KEY 是您透過下列方式設定新的 Prisma Postgres 實例時所收到的 API 金鑰佔位符:。以下是實際連接到 Prisma Postgres 的連接網址範例:

prisma.config.ts
export default defineConfig({
datasource: {
url: "prisma+postgres://accelerate.prisma-data.net/?api_key=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJhcGlfa2V5IjoiMGNkZTFlMjQtNzhiYi00NTY4LTkyM2EtNWUwOTEzZWUyNjU1IiwidGVuYW50X2lkIjoiNzEyZWRlZTc1Y2U2MDk2ZjI4NDg3YjE4NWMyYzA2OTNhNGMxNzJkMjhhOWFlNGUwZTYxNWE4NWIxZWY1YjBkMCIsImludGVybmFsX3NlY3JldCI6IjA4MzQ2Y2RlLWI5ZjktNDQ4Yy04NThmLTMxNjg4ODEzNmEzZCJ9.N1Za6q6NfInzHvRkud6Ojt_-RFg18a0601vdYWGKOrk"
},
});

本機 Prisma Postgres

連接到本機 Prisma Postgres 實例的連接字串,反映了透過 Accelerate 遠端實例的結構。

prisma.config.ts
export default defineConfig({
datasource: {
url: "prisma+postgres://accelerate.prisma-data.net/?api_key=API_KEY"
},
});

然而,在這種情況下,API_KEY 不提供驗證詳細資訊。相反地,它會對本機 Prisma Postgres 實例的資訊進行編碼。您可以透過 prisma dev 指令取得本機連接字串。

PostgreSQL

prisma.config.ts
export default defineConfig({
datasource: {
url: "postgresql://janedoe:mypassword@localhost:5432/mydb?schema=sample"
},
});

MySQL

prisma.config.ts
export default defineConfig({
datasource: {
url: "mysql://janedoe:mypassword@localhost:3306/mydb"
},
});

Microsoft SQL Server

prisma.config.ts
export default defineConfig({
datasource: {
url: "sqlserver://:1433;initial catalog=sample;user=sa;password=mypassword;"
},
});

SQLite

prisma.config.ts
export default defineConfig({
datasource: {
url: "file:./dev.db"
},
});

CockroachDB

prisma.config.ts
export default defineConfig({
datasource: {
url: "postgresql://janedoe:mypassword@localhost:26257/mydb?schema=public"
},
});

MongoDB

對 MongoDB 的支援僅限於 Prisma 6。我們正在努力在 Prisma 7 中加入對 MongoDB 的支援。

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

.env

您也可以將連接網址作為環境變數提供:

schema.prisma
datasource db {
provider = "postgresql"
}

接著,您可以在終端機中設定環境變數,或是提供一個名為 .envdotenv 檔案。Prisma CLI 將會自動讀取它。

Prisma ORM 會在以下情況從 dotenv 檔案讀取連接網址:

  • 在建置時更新 schema 時
  • 在執行時連接到資料庫時
DATABASE_URL=postgresql://janedoe:mypassword@localhost:5432/mydb
© . This site is unofficial and not affiliated with Prisma Data, Inc.