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

データベースをTypeScriptとPlanetScaleで接続する

データベースに接続するには、Prismaスキーマのdatasourceブロックにあるurlフィールドを、データベースの接続URLに設定する必要があります。

prisma/schema.prisma
datasource db {
provider = "postgresql"
url = env("DATABASE_URL")
}

また、datasourceブロックで外部キー制約をエミュレートするために、リレーションモードのタイプをprismaに設定する必要があります。

schema.prisma
datasource db {
provider = "mysql"
url = env("DATABASE_URL")
relationMode = "prisma"
}

注意: 2024年2月以降、PlanetScaleではデータベースレベルで外部キー制約を使用することも可能になり、relationMode = "prisma"を設定する必要がなくなりました。

urlは、.envで定義されている環境変数を介して設定されます。

.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は次のようになります

.env
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は次のようになります

.env
DATABASE_URL="mysql://root@localhost:PORT/mydb"
情報

環境変数のコミットを防ぐため、.gitignoreファイルに.envを追加することをお勧めします。

ブランチに接続するには、以下のコマンドを使用します

pscale connect prisma-test branchname --port PORT

デフォルトポート3306を使用している場合、--portフラグは省略できます。

© . All rights reserved.