データベースに接続する
データベースに接続するには、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"