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

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"

これで、接続URLをご自身のデータベースを指すように調整する必要があります。

接続URL

ご利用のデータベースの接続URLの形式は、使用するデータベースによって異なります。PostgreSQLの場合、以下のようになります(すべて大文字で表記されている部分は、具体的な接続情報のプレースホルダーです)。

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

注意: ほとんどの場合、postgres://postgresql:// のURIスキーム指定子を互換的に使用できます。ただし、データベースのホスティング方法によっては、具体的に指定する必要がある場合があります。

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.