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

データベースを接続する

データベースに接続するには、Prismaスキーマのdatasourceブロックのurlフィールドをデータベースの接続URLに設定する必要があります。

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

この場合、url.envで定義されている環境変数経由で設定されます。

.env
DATABASE_URL="postgresql://johndoe:randompassword@localhost:5432/mydb?schema=public"
情報

環境変数をコミットしないように、.env.gitignoreファイルに追加することをお勧めします。

次に、接続URLを独自のデータベースを指すように調整する必要があります。

データベースの接続URLの形式は、使用するデータベースによって異なります。PostgreSQLの場合、次のようになります(すべて大文字でスペルアウトされた部分は、特定の接続詳細のプレースホルダーです)。

postgresql://USER:PASSWORD@HOST:PORT/DATABASE?schema=SCHEMA

各コンポーネントの簡単な説明は次のとおりです。

  • USER:データベースユーザーの名前
  • PASSWORD:データベースユーザーのパスワード
  • HOST:ホスト名(ローカル環境の場合はlocalhost
  • PORT:データベースサーバーが実行されているポート(通常、PostgreSQLの場合は5432
  • DATABASEデータベースの名前
  • SCHEMA:データベース内のスキーマの名前

PostgreSQL接続URLのschemaパラメーターに何を指定すればよいかわからない場合は、おそらく省略できます。その場合、デフォルトのスキーマ名publicが使用されます。

例として、HerokuでホストされているPostgreSQLデータベースの場合、接続URLは次のようになります。

.env
DATABASE_URL="postgresql://opnmyfngbknppm:XXX@ec2-46-137-91-216.eu-west-1.compute.amazonaws.com:5432/d50rgmkqi2ipus?schema=hello-prisma"

macOSでPostgreSQLをローカルで実行する場合、ユーザーとパスワード、およびデータベース名は通常、OSの現在のユーザーに対応します。たとえば、ユーザーがjanedoeという名前であると仮定すると、次のようになります。

.env
DATABASE_URL="postgresql://janedoe:janedoe@localhost:5432/janedoe?schema=hello-prisma"