Prisma Client で踏み台のEC2を経由してRDSに接続する

はじめに

カラダノートの堀内です。 最近弊社では TypeScript ✕ Prisma の導入を進めはじめました。

この記事は Prismaのintrospection を開発環境やステージング環境のDBに対して踏み台のEC2を経由して実行するときのメモです。

f:id:karadanote:20210329000741p:plain
やりたいこと

手順

1) まずSSH でトンネリングしておきます。

$ ssh -N -L 3307:rdsのホスト:3306 ec2のユーザ名@ec2のホスト -i ec2のpem

2) prismaの設定を以下のように変更しておきます。

prisma/schema.prisma

datasource db {
  provider = "mysql"
  ...

prisma/.env

DATABASE_URL="mysql://DBユーザ名:パスワード@127.0.01:3307/接続先のDB名"

3)これで introspection を実行すれば接続先のRDSのDBから schema.prisma を生成してくれます。

$ npx prisma introspect

参考元

本家リポジトリに同様のIssueが挙がっていたので参考にしました。

Database Connection Via SSH Tunneling