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"