REST API

使用自定义模式


默认情况下,您的数据库有一个 public 模式,该模式会自动暴露在数据 API 上。

创建自定义模式

您可以通过执行以下 SQL 语句来创建自己的自定义模式,将 myschema 替换为您想要使用的模式名称:

1
CREATE SCHEMA myschema;

暴露自定义模式

您可以暴露自定义数据库模式 - 为此需要按照以下步骤操作:

  1. 前往 API 设置 并将您的自定义模式添加到"暴露模式"中。
  2. 执行以下 SQL 语句,将 myschema 替换为您的模式名称:
1
2
3
4
5
6
7
GRANT USAGE ON SCHEMA myschema TO anon, authenticated, service_role;GRANT ALL ON ALL TABLES IN SCHEMA myschema TO anon, authenticated, service_role;GRANT ALL ON ALL ROUTINES IN SCHEMA myschema TO anon, authenticated, service_role;GRANT ALL ON ALL SEQUENCES IN SCHEMA myschema TO anon, authenticated, service_role;ALTER DEFAULT PRIVILEGES FOR ROLE postgres IN SCHEMA myschema GRANT ALL ON TABLES TO anon, authenticated, service_role;ALTER DEFAULT PRIVILEGES FOR ROLE postgres IN SCHEMA myschema GRANT ALL ON ROUTINES TO anon, authenticated, service_role;ALTER DEFAULT PRIVILEGES FOR ROLE postgres IN SCHEMA myschema GRANT ALL ON SEQUENCES TO anon, authenticated, service_role;

现在您可以通过数据 API 访问这些模式:

1
2
3
4
5
6
7
8
9
// 初始化 JS 客户端import { createClient } from '@supabase/supabase-js'const supabase = createClient(SUPABASE_URL, SUPABASE_ANON_KEY, { db: { schema: 'myschema' } })// 发起请求const { data: todos, error } = await supabase.from('todos').select('*')// 您也可以基于每个查询更改目标模式const { data: todos, error } = await supabase.schema('myschema').from('todos').select('*')