>
ローカル環境でnpm run buildを実行した時は、エラーは出なかったのですが、Vercelにデプロイする時に以下のエラーが発生しました。
PrismaClientKnownRequestError: Invalid `prisma.categoryRelationship.findMany()` invocation: Timed out fetching a new connection from the connection pool. More info: http://pris.ly/d/connection-pool (Current connection pool timeout: 10, connection limit: 1)
Prismaのタイムアウトのエラーのようです。Prismaのデフォルトの設定では、タイムアウトは10秒、接続数は1になっています。エラーメッセージの中に書かれているページに解決方法が載っています。
タイムアウトを10秒より長い時間にすることで、タイムアウトを防ぎます。今回は30秒にしてみました。よくわかっていませんが、接続数も5に増やしてみました。
データベースのURLにパラメータ ?connection_limit=5&pool_timeout=30 を付与します。
datasource db {
provider = "postgresql"
url = "postgresql://johndoe:mypassword@localhost:5432/mydb?connection_limit=5&pool_timeout=30"
}
私のプロジェクトでは、これでエラーが発生することなく、無事デプロイすることができました。
未検証ですが、ChatGPTによると、以下の方法もあるようです。時間のある時に試してみます。
datasource db {
provider = "postgresql"
url = env("DATABASE_URL")
directUrl = env("DIRECT_URL")
connection_limit = 5
timeout = 30
}
Webサイトの開発の終盤でこのエラーが出てきて、よくわからず泣きそうになりました。無事エラーを解消できてほっとしています。過去に何度かわけのわからないエラーが出て挫折しているので、今度こそは完成まで持っていきたいです。初心者はPrismaなどは使わずに、Vercelだけで一度Webサイトを完成させた方がいいかもしれませんね。