メインコンテンツへスキップ

接続URL

Prisma ORM がデータベースに接続するためには接続URLが必要です。例えば、Prisma Client でクエリを送信したり、Prisma Migrate でデータベーススキーマを変更したりする場合などです。

接続URLは、Prisma スキーマの `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` は、Prisma 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")
}

環境変数は、ターミナルで設定するか、`.env` という名前の dotenv ファイルを提供することで設定できます。これは Prisma CLI によって自動的に認識されます。

Prisma ORM は、以下の状況で dotenv ファイルから接続URLを読み取ります。

  • ビルド時にスキーマを更新するとき
  • 実行時にデータベースに接続するとき
DATABASE_URL=postgresql://janedoe:mypassword@localhost:5432/mydb