Supabase报错relation 'password_management'不存在但表已创建的问题
Supabase + Next.js 插入自定义表报错:relation "password_management" does not exist
我正在用Supabase和Next.js开发OAuth约会网站,通过Supabase Auth Admin API创建新用户后,需要向自定义的profiles和password_management表插入附加信息。但插入password_management表时持续报错:
Database error: relation "password_management" does not exist
日志显示:ERROR: relation "password_management" does not exist (SQLSTATE 42P01)
我的目标
- 使用
supabase.auth.admin.createUser()创建新用户 - 立即向
profiles和password_management表插入附加信息
已完成操作
- 在Supabase SQL编辑器中成功创建
password_management表 - 在表编辑器中确认该表存在于
publicschema profiles表已创建且插入操作正常- 使用了带Service Role Key的正确
supabaseAdmin实例 - 检查过表名拼写无误
- 尝试删除并重建表,仍报错
相关代码(Next.js API路由)
const { data: authData, error: authError } = await supabaseAdmin.auth.admin.createUser({ email, password, email_confirm: true, }); if (authError || !authData?.user?.id) { return NextResponse.json({ success: false, message: `Auth error: ${authError?.message}` }, { status: 500 }); } const userId = authData.user.id; // Insert into password_management const { error: passwordError } = await supabaseAdmin.from('password_management').insert({ user_id: userId, password_strength: 'default', requires_reset: false, password_last_changed: new Date(), }); if (passwordError) { console.error('Password insert error:', passwordError); }
怀疑的原因
- 是否存在schema可见性问题?
- 是否需要在
.from()中显式指定schema,如from('public.password_management')? - 是否是Supabase元数据缓存未及时识别表的竞态条件?
我的问题
- 为何Supabase在表已创建且仪表板可见的情况下,仍抛出“relation 'password_management' does not exist”错误?
- 导致这种不匹配的原因是什么,如何确保
supabase.from('password_management')能正确找到表?
内容的提问来源于stack exchange,提问作者Eun ji Gater
相关产品推荐
相关产品推荐

