Closed5
NestJS + Prisma + AWS Auroraで、Too many connectionとなる件
要はPrismaClientは本番ではSingletonで使えよ、という話。
connection_limitを設定しているが挙動は変わらない(そもそもdefault値がある
nestjs側の実装は、チュートリアル にあるとおり、PrismaClientをextendsしたServiceをnestjsのDIで突っ込んでいる。
インスタンス毎にconnectionを張っちゃうというのは解る。
ということで、結果的にPrismaServiceをDIすることをやめた。
上記のissueにあるファイルを作って、PrismaServiceを使うのをやめて直接importする形に。
その結果、依存しているService/Controller/Module/Test関連全てに手を入れる結果に。
これを教訓に、極力小さい実装で早めに本番環境で動くことを確認してから横展開していく。
これ、根本的に解決した。
PrismaServiceはそのまま使える。
というのも、そもそもの原因はPrismaClientを必要とするModuleにおいて、PrismaModuleをimportsする形ではなくPrismaServiceをprovidersに渡していたことにより、Moduleがinstance化される毎にPrismaClientが作られていた模様。
動いてしまっていたので原因判明が遅くなってしまったが、Prismaに限らず以下のリンクにある通りのmodule importの仕組みを理解して実装していくことが大事だと痛感。
このスクラップは2022/10/26にクローズされました