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

JavaScriptとPostgreSQLを使ってデータベースを接続する

データベースを接続するには、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"
© . All rights reserved.