Open2

supabaseのメモ

ttatsatottatsato

prismaとsupabase

prismaでauthとpublicの複数スキーマを扱う

経緯

下記のエラーが発生した。

Error: P4002

The schema of the introspected database was inconsistent: The schema of the introspected database was inconsistent: Cross schema references are only allowed when the target schema is listed in the schemas property of your datasource. `public.users` points to `auth.users` in constraint `users_id_fkey`. Please add `auth` to your `schemas` property and run this command again.

要約するとpublicというスキーマは参照できるけど、authというスキーマが参照できないから追加してくれと。

対策

schema.prisma

generator client {
  provider        = "prisma-client-js"
  // add
  previewFeatures = ["multiSchema"]
}

datasource db {
  provider = "postgresql"
  url      = env("DATABASE_URL")
 // add
  schemas  = ["auth", "public"]
}
ttatsatottatsato

Supabase Email rate limit exceeded の対策

原因

一定時間内にメールを送信できる回数が限られている。

背景

supabaseのシステムメールがスパム利用されることが増えたために、rate limitを下げる方針になったそう。
https://github.com/orgs/supabase/discussions/15896

対策

supabaseの管理画面
Settings → Auth → SMTP Settings の Custom SMTPを有効にしてSendGridなどを利用する。