Supabase と Prisma で P1013 database string is invalid
に公開背景
Supabase で新しいプロジェクトを作り Prisma で migrate deploy しようとしたところ以下のエラーが発生しました。
P1013: The provided database string is invalid. invalid port number in database URL. Please refer to the documentation in https://www.prisma.io/docs/reference/database-reference/connection-urls for constructing a correct connection string. In some cases, certain characters must be escaped. Please check the string for any illegal characters.
原因
Supabase のパスワードに Prisma の接続 URL として指定できない文字が含まれていたため。
解決方法
Supabase のパスワードを%エンコードしてしてから Prisma の接続文字列に指定する。
例えばパスワードが 「@password+」だったら「%40password%2B」というような形。javascript で簡単にエンコードできます。
encodeURIComponent(“@password%”) // %40password%2B