接続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 キーを介して行われます。
datasource db {
provider = "postgresql"
url = "prisma+postgres://accelerate.prisma-data.net/?api_key=API_KEY"
}
このスニペットでは、`API_KEY` は、Prisma Postgres の新しいインスタンスをセットアップするときに受け取る API キーのプレースホルダーです。。以下は、Prisma Postgres への実際の接続URLの例です。
datasource db {
provider = "postgresql"
url = "prisma+postgres://accelerate.prisma-data.net/?api_key=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJhcGlfa2V5IjoiMGNkZTFlMjQtNzhiYi00NTY4LTkyM2EtNWUwOTEzZWUyNjU1IiwidGVuYW50X2lkIjoiNzEyZWRlZTc1Y2U2MDk2ZjI4NDg3YjE4NWMyYzA2OTNhNGMxNzJkMjhhOWFlNGUwZTYxNWE4NWIxZWY1YjBkMCIsImludGVybmFsX3NlY3JldCI6IjA4MzQ2Y2RlLWI5ZjktNDQ4Yy04NThmLTMxNjg4ODEzNmEzZCJ9.N1Za6q6NfInzHvRkud6Ojt_-RFg18a0601vdYWGKOrk"
}
PostgreSQL
datasource db {
provider = "postgresql"
url = "postgresql://janedoe:mypassword@localhost:5432/mydb?schema=sample"
}
MySQL
datasource db {
provider = "mysql"
url = "mysql://janedoe:mypassword@localhost:3306/mydb"
}
Microsoft SQL Server
datasource db {
provider = "sqlserver"
url = "sqlserver://localhost:1433;initial catalog=sample;user=sa;password=mypassword;"
}
SQLite
datasource db {
provider = "sqlite"
url = "file:./dev.db"
}
CockroachDB
datasource db {
provider = "cockroachdb"
url = "postgresql://janedoe:mypassword@localhost:26257/mydb?schema=public"
}
MongoDB
datasource db {
provider = "mongodb"
url = "mongodb+srv://root:<password>@cluster0.ab1cd.mongodb.net/myDatabase?retryWrites=true&w=majority"
}
.env
接続URLを環境変数として提供することもできます。
datasource db {
provider = "postgresql"
url = env("DATABASE_URL")
}
環境変数は、ターミナルで設定するか、`.env` という名前の dotenv ファイルを提供することで設定できます。これは Prisma CLI によって自動的に認識されます。
Prisma ORM は、以下の状況で dotenv ファイルから接続URLを読み取ります。
- ビルド時にスキーマを更新するとき
- 実行時にデータベースに接続するとき
DATABASE_URL=postgresql://janedoe:mypassword@localhost:5432/mydb