JavaScriptとPlanetScaleを使ってデータベースに接続する
データベースに接続するには、Prismaスキーマのdatasource
ブロックにあるurl
フィールドを、データベースの接続URLに設定する必要があります。
datasource db {
provider = "postgresql"
url = env("DATABASE_URL")
}
また、datasource
ブロックで外部キー制約をエミュレートするには、リレーションモードのタイプをprisma
に設定する必要があります。
datasource db {
provider = "mysql"
url = env("DATABASE_URL")
relationMode = "prisma"
}
注: 2024年2月以降、PlanetScaleでは代替としてデータベースレベルで外部キー制約を使用できるため、
relationMode = "prisma"
の設定は不要です。
url
は、.env
で定義される環境変数を介して設定されます。
DATABASE_URL="mysql://janedoe:mypassword@server.us-east-2.psdb.cloud/mydb?sslaccept=strict"
次に、接続URLを自分のデータベースを指すように調整する必要があります。
データベースの接続URLの形式は、通常、使用するデータベースによって異なります。PlanetScaleはMySQLの接続URL形式を使用しており、以下の構造になっています(すべて大文字で書かれた部分は、特定の接続詳細のプレースホルダーです)
mysql://USER:PASSWORD@HOST:PORT/DATABASE
各コンポーネントの簡単な説明は以下の通りです
USER
: データベースユーザーの名前PASSWORD
: データベースユーザーのパスワードPORT
: データベースサーバーが稼働しているポート(MySQLでは通常3306
)DATABASE
: データベースの名前
PlanetScaleでホストされているデータベースの場合、接続URLは次のようになります
DATABASE_URL="mysql://myusername:mypassword@server.us-east-2.psdb.cloud/mydb?sslaccept=strict"
特定のデータベースブランチの接続URLは、PlanetScaleアカウントでそのブランチの概要ページに移動し、「Connect」ドロップダウンを選択することで確認できます。「Passwords」セクションで、新しいパスワードを生成し、「Prisma」を選択すると、接続URLのPrisma形式が得られます。
代替方法: PlanetScale CLIを使用して接続する
あるいは、PlanetScale CLIを使用してPlanetScaleデータベースサーバーに接続し、ローカル接続URLを使用することもできます。この場合、接続URLは次のようになります
DATABASE_URL="mysql://root@localhost:PORT/mydb"
環境変数のコミットを防ぐため、.env
を.gitignore
ファイルに追加することをお勧めします。
ブランチに接続するには、以下のコマンドを使用します
pscale connect prisma-test branchname --port PORT
デフォルトポート3306
を使用している場合は、--port
フラグは省略できます。