CLI 参考

Supabase CLI

Supabase CLI 提供了在本地开发项目并部署到 Supabase 平台的工具。CLI 仍在开发中,但它包含了与 Supabase 项目和 Supabase 平台协作的所有功能。


全局标志

Supabase CLI 支持每个命令的全局标志。

标志

    --create-ticket
    可选
    无类型

    为任何 CLI 错误创建支持工单

    --debug
    可选
    无类型

    将调试日志输出到 stderr

    --dns-resolver <[ native | https ]>
    可选
    无类型

    使用指定的解析器查找域名

    --experimental
    可选
    无类型

    启用实验性功能

    -h, --help
    可选
    无类型

    supabase 的帮助信息

    --network-id <string>
    可选
    无类型

    使用指定的 docker 网络而不是生成的网络

    -o, --output <[ env | pretty | json | toml | yaml ]>
    可选
    无类型

    状态变量的输出格式

    --profile <string>
    可选
    无类型

    使用特定配置文件连接到 Supabase API

    --workdir <string>
    可选
    无类型

    Supabase 项目目录的路径

    --yes
    可选
    无类型

    对所有提示回答“是”


supabase bootstrap

用法

1
supabase bootstrap [template] [flags]

标志

  • -p, --password <string>
    可选

    远程 Postgres 数据库的密码。


supabase init

初始化 Supabase 本地开发的配置。

在当前工作目录中创建 supabase/config.toml 文件。此配置特定于每个本地项目。

您可以通过指定 SUPABASE_WORKDIR 环境变量或 --workdir 标志来覆盖目录路径。

除了 config.toml 之外,supabase 目录还可以包含其他 Supabase 对象,例如 migrationsfunctionstests 等。

用法

1
supabase init [flags]

标志

  • --force
    可选

    覆盖现有的 supabase/config.toml。

  • -i, --interactive
    可选

    启用交互模式以配置 IDE 设置。

  • --use-orioledb
    可选

    将 OrioleDB 存储引擎用于 Postgres。

1
supabase init

响应

1
Finished supabase init.

supabase login

通过使用您的个人访问令牌登录,将 Supabase CLI 连接到您的 Supabase 帐户。

您的访问令牌安全地存储在原生凭据存储中。如果原生凭据存储不可用,它将写入 ~/.supabase/access-token 的纯文本文件。

如果不需要此行为,例如在 CI 环境中,您可以通过在其他命令中指定 SUPABASE_ACCESS_TOKEN 环境变量来跳过登录。

Supabase CLI 使用存储的令牌访问项目、函数、秘密等管理 API。

用法

1
supabase login [flags]

标志

  • --name <string>
    可选

    将用于在设置中存储令牌的名称

  • --no-browser
    可选

    不自动打开浏览器

  • --token <string>
    可选

    使用提供的令牌而不是自动登录流程

1
supabase login

响应

1
You can generate an access token from https://supabase.org.cn/dashboard/account/tokens
2
Enter your access token: sbp_****************************************
3
Finished supabase login.


supabase start

启动 Supabase 本地开发堆栈。

需要通过运行 supabase init 在当前工作目录中创建 supabase/config.toml

默认情况下,所有服务容器都会启动。您可以通过传入 -x 标志来排除不需要的容器。要排除多个容器,可以传入逗号分隔的字符串,例如 -x gotrue,imgproxy,或者多次指定 -x 标志。

建议至少拥有 7GB RAM 以启动所有服务。

会自动添加健康检查以验证已启动的容器。使用 --ignore-health-check 标志忽略这些错误。

用法

1
supabase start [flags]

标志

  • -x, --exclude <strings>
    可选

    不启动的容器名称。[gotrue,realtime,storage-api,imgproxy,kong,mailpit,postgrest,postgres-meta,studio,edge-runtime,logflare,vector,supavisor]

  • --ignore-health-check
    可选

    忽略不健康的服务并以 0 退出

1
supabase start

响应

1
Creating custom roles supabase/roles.sql...
2
Applying migration 20220810154536_employee.sql...
3
Seeding data supabase/seed.sql...
4
Started supabase local development setup.

supabase stop

停止 Supabase 本地开发堆栈。

需要通过运行 supabase init 在当前工作目录中创建 supabase/config.toml

所有 Docker 资源在重启后都会保留。使用 --no-backup 标志在重启之间重置本地开发数据。

使用 --all 标志停止机器上所有本地 Supabase 项目实例。与 --no-backup 一起使用时请务必小心,因为它会删除所有 Supabase 本地项目数据。

用法

1
supabase stop [flags]

标志

  • --all
    可选

    停止机器上所有项目的所有本地 Supabase 实例。

  • --no-backup
    可选

    停止后删除所有数据卷。

  • --project-id <string>
    可选

    要停止的本地项目 ID。

1
supabase stop

响应

1
Stopped supabase local development setup.
2
Local data are backed up to docker volume.

supabase status

显示 Supabase 本地开发堆栈的状态。

需要通过运行 supabase startsupabase db start 启动本地开发堆栈。

您可以通过指定 -o env 标志导出连接参数以在本地初始化 supabase-js。支持的参数包括 JWT_SECRETANON_KEYSERVICE_ROLE_KEY

用法

1
supabase status [flags]

标志

  • --override-name <strings>
    可选

    覆盖特定变量名称。

1
supabase status

响应

1
supabase local development setup is running.
2
3
API URL: http://127.0.0.1:54321
4
GraphQL URL: http://127.0.0.1:54321/graphql/v1
5
DB URL: postgresql://postgres:postgres@127.0.0.1:54322/postgres
6
Studio URL: http://127.0.0.1:54323
7
Inbucket URL: http://127.0.0.1:54324
8
JWT secret: super-secret-jwt-token-with-at-least-32-characters-long
9
anon key: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJzdXBhYmFzZS1kZW1vIiwicm9sZSI6ImFub24iLCJleHAiOjE5ODM4MTI5OTZ9.CRXP1A7WOeoJeXxjNni43kdQwgnWNReilDMblYTn_I0
10
service_role key: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJzdXBhYmFzZS1kZW1vIiwicm9sZSI6InNlcnZpY2Vfcm9sZSIsImV4cCI6MTk4MzgxMjk5Nn0.EGIM96RAZx35lJzdJsyH-qQwv8Hdp7fsn3W0YpN81IU

supabase test


supabase test db

对本地数据库执行 pgTAP 测试。

需要通过运行 supabase start 启动本地开发堆栈。

在容器中运行 pg_prove,并从 supabase/tests 目录挂载单元测试文件。测试文件可以以 .sql.pg 扩展名结尾。

由于每个测试都封装在自己的事务中,因此无论成功或失败,它都会单独回滚。

用法

1
supabase test db [path] ... [flags]

标志

  • --db-url <string>
    可选

    测试由连接字符串指定的数据库(必须进行百分比编码)。

  • --linked
    可选

    在链接项目上运行 pgTAP 测试。

  • --local
    可选

    在本地数据库上运行 pgTAP 测试。

1
supabase test db

响应

1
/tmp/supabase/tests/nested/order_test.pg .. ok
2
/tmp/supabase/tests/pet_test.sql .......... ok
3
All tests successful.
4
Files=2, Tests=2, 6 wallclock secs ( 0.03 usr 0.01 sys + 0.05 cusr 0.02 csys = 0.11 CPU)
5
Result: PASS

supabase test new

用法

1
supabase test new <name> [flags]

标志

  • -t, --template <[ pgtap ]>
    可选

    要生成的模板框架。


supabase gen

根据您的 Postgres 数据库模式自动生成类型定义。

此命令连接到您的数据库(本地或远程),并生成与您的数据库表、视图和存储过程匹配的类型化定义。默认情况下,它生成 TypeScript 定义,但也支持 Go 和 Swift。

生成的类型在您使用代码中的数据库时提供类型安全和自动补全,有助于防止运行时错误并改善开发人员体验。

这些类型遵守数据库模式中定义的关系、约束和自定义类型。

子命令


supabase gen signing-key

安全地生成私有 JWT 签名密钥,用于 CLI 或导入到仪表板。

支持的算法:ES256 - 带 P-256 曲线和 SHA-256 的 ECDSA(推荐)RS256 - 带 SHA-256 的 RSA

用法

1
supabase gen signing-key [flags]

标志

  • --algorithm <[ RS256 | ES256 ]>
    可选

    签名密钥生成的算法。

  • --append
    可选

    将新密钥附加到现有密钥文件而不是覆盖。


supabase gen types

用法

1
supabase gen types [flags]

标志

  • --db-url <string>
    可选

    从数据库 URL 生成类型。

  • --lang <[ typescript | go | swift | python ]>
    可选

    生成类型的输出语言。

  • --linked
    可选

    从链接项目生成类型。

  • --local
    可选

    从本地开发数据库生成类型。

  • --postgrest-v9-compat
    可选

    生成与 PostgREST v9 及以下版本兼容的类型。

  • --project-id <string>
    可选

    从项目 ID 生成类型。

  • --query-timeout <duration>
    可选

    允许的数据库查询最大超时。

  • -s, --schema <strings>
    可选

    要包含的模式的逗号分隔列表。

  • --swift-access-control <[ internal | public ]>
    可选

    Swift 生成类型的访问控制。


supabase db


supabase db pull

从远程数据库拉取模式更改。将在 supabase/migrations 目录下创建一个新的迁移文件。

需要通过运行 supabase link 将您的本地项目链接到远程数据库。对于自托管数据库,您可以使用 --db-url 标志传入连接参数。

请注意,此命令需要 Docker Desktop(或正在运行的 Docker 守护程序),因为它会启动一个本地 Postgres 容器来对比您的远程模式。

可选地,可以在迁移历史表中插入新行以反映远程数据库的当前状态。

如果迁移历史表中没有条目,则将使用 pg_dump 捕获您已创建的远程模式的所有内容。否则,此命令将仅对比远程数据库的模式更改,类似于运行 db diff --linked

用法

1
supabase db pull [migration name] [flags]

标志

  • --db-url <string>
    可选

    从由连接字符串指定的数据库拉取(必须进行百分比编码)。

  • --linked
    可选

    从链接项目拉取。

  • --local
    可选

    从本地数据库拉取。

  • -p, --password <string>
    可选

    远程 Postgres 数据库的密码。

  • -s, --schema <strings>
    可选

    要包含的模式的逗号分隔列表。

1
supabase db pull

响应

1
Connecting to remote database...
2
Schema written to supabase/migrations/20240414044403_remote_schema.sql
3
Update remote migration history table? [Y/n]
4
Repaired migration history: [20240414044403] => applied
5
Finished supabase db pull.
6
The auth and storage schemas are excluded. Run supabase db pull --schema auth,storage again to diff them.

supabase db push

将所有本地迁移推送到远程数据库。

需要通过运行 supabase link 将您的本地项目链接到远程数据库。对于自托管数据库,您可以使用 --db-url 标志传入连接参数。

首次运行此命令时,将在 supabase_migrations.schema_migrations 下创建一个迁移历史表。成功应用迁移后,将在迁移历史表中插入一个新行,以时间戳作为其唯一 ID。后续的推送将跳过已应用的迁移。

如果您需要修改迁移历史表,例如删除现有条目或插入新条目而不实际运行迁移,请使用 migration repair 命令。

使用 --dry-run 标志在应用之前查看更改列表。

用法

1
supabase db push [flags]

标志

  • --db-url <string>
    可选

    推送到由连接字符串指定的数据库(必须进行百分比编码)。

  • --dry-run
    可选

    打印将要应用的迁移,但不实际应用它们。

  • --include-all
    可选

    包含远程历史表中未找到的所有迁移。

  • --include-roles
    可选

    包含来自 supabase/roles.sql 的自定义角色。

  • --include-seed
    可选

    包含配置中的种子数据。

  • --linked
    可选

    推送到链接项目。

  • --local
    可选

    推送到本地数据库。

  • -p, --password <string>
    可选

    远程 Postgres 数据库的密码。

1
supabase db push

响应

1
Linked project is up to date.

supabase db reset

将本地数据库重置为干净状态。

需要通过运行 supabase start 启动本地开发堆栈。

重新创建本地 Postgres 容器并应用在 supabase/migrations 目录中找到的所有本地迁移。如果测试数据在 supabase/seed.sql 中定义,则将在运行迁移后进行填充。本地开发期间进行的任何其他数据或模式更改都将被丢弃。

当运行 db reset--linked--db-url 标志时,会执行一个 SQL 脚本来识别并删除远程数据库中所有用户创建的实体。由于 Postgres 角色是集群级实体,因此通过仪表板或 supabase/roles.sql 创建的任何自定义角色都不会被远程重置删除。

用法

1
supabase db reset [flags]

标志

  • --db-url <string>
    可选

    重置由连接字符串指定的数据库(必须进行百分比编码)。

  • --last <uint>
    可选

    重置最多最后 n 个迁移版本。

  • --linked
    可选

    使用本地迁移重置链接项目。

  • --local
    可选

    使用本地迁移重置本地数据库。

  • --no-seed
    可选

    重置后跳过运行种子脚本。

  • --version <string>
    可选

    重置到指定版本。

1
supabase db reset

响应

1
Resetting database...
2
Initializing schema...
3
Applying migration 20220810154537_create_employees_table.sql...
4
Seeding data supabase/seed.sql...
5
Finished supabase db reset on branch main.

supabase db dump

从远程数据库转储内容。

需要通过运行 supabase link 将您的本地项目链接到远程数据库。对于自托管数据库,您可以使用 --db-url 标志传入连接参数。

在容器中运行 pg_dump,并带有附加标志以排除 Supabase 管理的模式。忽略的模式包括 auth、storage 以及由扩展创建的模式。

默认转储不包含任何数据或自定义角色。要明确转储这些内容,请指定 --data-only--role-only 标志。

用法

1
supabase db dump [flags]

标志

  • --data-only
    可选

    仅转储数据记录。

  • --db-url <string>
    可选

    从由连接字符串指定的数据库转储(必须进行百分比编码)。

  • --dry-run
    可选

    打印将要执行的 pg_dump 脚本。

  • -x, --exclude <strings>
    可选

    要从仅数据转储中排除的 schema.tables 列表。

  • -f, --file <string>
    可选

    保存转储内容的文件的路径。

  • --keep-comments
    可选

    保留 pg_dump 输出中的注释行。

  • --linked
    可选

    从链接项目转储。

  • --local
    可选

    从本地数据库转储。

  • -p, --password <string>
    可选

    远程 Postgres 数据库的密码。

  • --role-only
    可选

    仅转储集群角色。

  • -s, --schema <strings>
    可选

    要包含的模式的逗号分隔列表。

  • --use-copy
    可选

    使用复制语句代替插入。

1
supabase db dump -f supabase/schema.sql

响应

1
Dumping schemas from remote database...
2
Dumped schema to supabase/schema.sql.

supabase db diff

对比对本地或远程数据库所做的模式更改。

当与本地数据库对比时,需要本地开发堆栈正在运行。要与远程或自托管数据库对比,请分别指定 --linked--db-url 标志。

在容器中运行 djrobstep/migra,以比较目标数据库和影子数据库之间的模式差异。影子数据库是通过在单独的容器中应用本地 supabase/migrations 目录中的迁移来创建的。输出默认写入 stdout。为方便起见,您还可以通过传入 -f 标志将模式差异保存为新的迁移文件。

默认情况下,目标数据库中的所有模式都会被对比。使用 --schema public,extensions 标志将对比限制为模式的子集。

虽然 diff 命令能够捕获大多数模式更改,但在某些情况下已知会失败。目前,如果您的模式包含以下内容,则可能会发生这种情况:

  • 发布更改
  • 存储桶更改
  • 具有 security_invoker 属性的视图

用法

1
supabase db diff [flags]

标志

  • --db-url <string>
    可选

    与由连接字符串指定的数据库对比(必须进行百分比编码)。

  • -f, --file <string>
    可选

    将模式差异保存到新的迁移文件。

  • --linked
    可选

    将本地迁移文件与链接项目对比。

  • --local
    可选

    将本地迁移文件与本地数据库对比。

  • -s, --schema <strings>
    可选

    要包含的模式的逗号分隔列表。

  • --use-migra
    可选

    使用 migra 生成模式差异。

  • --use-pg-delta
    可选

    使用 pg-delta 生成模式差异。

  • --use-pg-schema
    可选

    使用 pg-schema-diff 生成模式差异。

  • --use-pgadmin
    可选

    使用 pgAdmin 生成模式差异。

1
supabase db diff -f my_table

响应

1
Connecting to local database...
2
Creating shadow database...
3
Applying migration 20230425064254_remote_commit.sql...
4
Diffing schemas: auth,extensions,public,storage
5
Finished supabase db diff on branch main.
6
7
No schema changes found

supabase db lint

检查本地数据库以查找模式错误。

当针对本地数据库进行 linting 时,需要本地开发堆栈正在运行。要针对远程或自托管数据库进行 linting,请分别指定 --linked--db-url 标志。

在本地 Postgres 容器中运行 plpgsql_check 扩展,以检查所有模式中的错误。默认的 lint 级别是 warning,可以通过 --level 标志提高到 error。

要仅针对特定模式进行 linting,请传入 --schema 标志。

--fail-on 标志可用于控制命令何时以非零状态码退出。可能的值是

  • none(默认):始终以零状态码退出,无论 lint 结果如何。
  • warning:如果发现任何警告或错误,则以非零状态码退出。
  • error:仅在发现错误时以非零状态码退出。

此标志在 CI/CD 管道中特别有用,您希望根据某些 lint 条件使构建失败。

用法

1
supabase db lint [flags]

标志

  • --db-url <string>
    可选

    检查由连接字符串指定的数据库(必须进行百分比编码)。

  • --fail-on <[ none | warning | error ]>
    可选

    以非零状态退出的错误级别。

  • --level <[ warning | error ]>
    可选

    要发出的错误级别。

  • --linked
    可选

    检查链接项目的模式错误。

  • --local
    可选

    检查本地数据库的模式错误。

  • -s, --schema <strings>
    可选

    要包含的模式的逗号分隔列表。

1
supabase db lint

响应

1
Linting schema: public
2
3
No schema errors found

supabase db start

用法

1
supabase db start [flags]

标志

  • --from-backup <string>
    可选

    逻辑备份文件的路径。


supabase migration


supabase migration new

在本地创建新的迁移文件。

如果 workdir 中不存在 supabase/migrations 目录,则会创建它。所有模式迁移文件都必须在此目录中创建,遵循模式 <timestamp>_<name>.sql

来自其他命令(如 db diff)的输出可以通过 stdin 管道传输到 migration new <name>

用法

1
supabase migration new <migration name>
1
supabase migration new schema_test

响应

1
Created new migration at supabase/migrations/20230306095710_schema_test.sql.

supabase migration list

列出本地和远程数据库中的迁移历史。

需要通过运行 supabase link 将您的本地项目链接到远程数据库。对于自托管数据库,您可以使用 --db-url 标志传入连接参数。

请注意,URL 字符串必须根据 RFC 3986 进行转义。

本地迁移存储在 supabase/migrations 目录中,而远程迁移则在 supabase_migrations.schema_migrations 表中跟踪。仅比较时间戳以识别任何差异。

如果本地和远程迁移历史之间存在差异,您可以使用 migration repair 命令解决它们。

用法

1
supabase migration list [flags]

标志

  • --db-url <string>
    可选

    列出由连接字符串指定的数据库的迁移(必须进行百分比编码)。

  • --linked
    可选

    列出已应用于链接项目的迁移。

  • --local
    可选

    列出已应用于本地数据库的迁移。

  • -p, --password <string>
    可选

    远程 Postgres 数据库的密码。

1
supabase migration list

响应

1
LOCAL │ REMOTE │ TIME (UTC)
2
─────────────────┼────────────────┼──────────────────────
3
│ 20230103054303 │ 2023-01-03 05:43:03
4
│ 20230103093141 │ 2023-01-03 09:31:41
5
20230222032233 │ │ 2023-02-22 03:22:33

supabase migration fetch

用法

1
supabase migration fetch [flags]

标志

  • --db-url <string>
    可选

    从由连接字符串指定的数据库获取迁移(必须进行百分比编码)。

  • --linked
    可选

    从链接项目获取迁移历史。

  • --local
    可选

    从本地数据库获取迁移历史。


supabase migration repair

修复远程迁移历史表。

需要通过运行 supabase link 将您的本地项目链接到远程数据库。

如果您的本地和远程迁移历史不同步,您可以通过将特定迁移标记为 --status applied--status reverted 来修复远程历史。标记为 reverted 将从迁移历史表中删除现有记录,而标记为 applied 将插入新记录。

例如,您的迁移历史可能如下表所示,其中本地或远程缺少条目。

$ supabase migration list
        LOCAL      │     REMOTE     │     TIME (UTC)
  ─────────────────┼────────────────┼──────────────────────
                   │ 20230103054303 │ 2023-01-03 05:43:03
   20230103054315  │                │ 2023-01-03 05:43:15

要将迁移历史重置为干净状态,请首先删除您的本地迁移文件。

$ rm supabase/migrations/20230103054315_remote_commit.sql

$ supabase migration list
        LOCAL      │     REMOTE     │     TIME (UTC)
  ─────────────────┼────────────────┼──────────────────────
                   │ 20230103054303 │ 2023-01-03 05:43:03

然后将远程迁移 20230103054303 标记为已恢复。

$ supabase migration repair 20230103054303 --status reverted
Connecting to remote database...
Repaired migration history: [20220810154537] => reverted
Finished supabase migration repair.

$ supabase migration list
        LOCAL      │     REMOTE     │     TIME (UTC)
  ─────────────────┼────────────────┼──────────────────────

现在您可以再次运行 db pull 以将远程模式转储为本地迁移文件。

$ supabase db pull
Connecting to remote database...
Schema written to supabase/migrations/20240414044403_remote_schema.sql
Update remote migration history table? [Y/n]
Repaired migration history: [20240414044403] => applied
Finished supabase db pull.

$ supabase migration list
        LOCAL      │     REMOTE     │     TIME (UTC)
  ─────────────────┼────────────────┼──────────────────────
    20240414044403 │ 20240414044403 │ 2024-04-14 04:44:03

用法

1
supabase migration repair [version] ... [flags]

标志

  • --db-url <string>
    可选

    修复由连接字符串指定的数据库的迁移(必须进行百分比编码)。

  • --linked
    可选

    修复链接项目的迁移历史。

  • --local
    可选

    修复本地数据库的迁移历史。

  • -p, --password <string>
    可选

    远程 Postgres 数据库的密码。

  • --status <[ applied | reverted ]>
    必需

    要更新的版本状态。

1
supabase migration repair 20230103054303 --status reverted

响应

1
Repaired migration history: 20230103054303 => reverted

supabase migration squash

将本地模式迁移合并到单个迁移文件。

合并后的迁移等同于应用现有迁移文件后本地数据库的仅模式转储。当您希望从迁移历史中删除同一模式的重复修改时,这特别有用。

然而,一个限制是数据操作语句(例如插入、更新或删除)在合并后的迁移中被省略。您必须在新迁移文件中手动添加它们。这包括 cron 作业、存储桶以及 vault 中任何加密的秘密。

默认情况下,最新的 <timestamp>_<name>.sql 文件将更新为包含合并后的迁移。您可以使用 --version <timestamp> 标志覆盖目标版本。

如果您的 supabase/migrations 目录为空,运行 supabase squash 将不执行任何操作。

用法

1
supabase migration squash [flags]

标志

  • --db-url <string>
    可选

    合并由连接字符串指定的数据库的迁移(必须进行百分比编码)。

  • --linked
    可选

    合并链接项目的迁移历史。

  • --local
    可选

    合并本地数据库的迁移历史。

  • -p, --password <string>
    可选

    远程 Postgres 数据库的密码。

  • --version <string>
    可选

    合并到指定版本。


supabase migration up

用法

1
supabase migration up [flags]

标志

  • --db-url <string>
    可选

    将迁移应用于由连接字符串指定的数据库(必须进行百分比编码)。

  • --include-all
    可选

    包含远程历史表中未找到的所有迁移。

  • --linked
    可选

    将待处理的迁移应用于链接项目。

  • --local
    可选

    将待处理的迁移应用于本地数据库。


supabase migration down

用法

1
supabase migration down [flags]

标志

  • --db-url <string>
    可选

    重置由连接字符串指定的数据库上已应用的迁移(必须进行百分比编码)。

  • --last <uint>
    可选

    重置最多最后 n 个迁移版本。

  • --linked
    可选

    重置链接项目上已应用的迁移。

  • --local
    可选

    重置本地数据库上已应用的迁移。


supabase seed


supabase seed buckets

用法

1
supabase seed buckets

标志

  • --linked
    可选

    为链接项目填充种子数据。

  • --local
    可选

    为本地数据库填充种子数据。


supabase inspect db


supabase inspect db bloat

此命令显示表“膨胀”的估计值 - 由于 Postgres 的 MVCC,当数据更新或删除时,会创建新行,旧行将变为不可见并标记为“死元组”。通常,autovaccum 进程会异步清理死元组。有时 autovaccum 无法足够快地工作以减少或防止表膨胀。高膨胀会减慢查询速度,导致过多的 IOPS 并浪费数据库空间。

应调查膨胀率高的表,以查看 vacuuming 是否不够快或是否存在其他问题。

    TYPE  │ SCHEMA NAME │        OBJECT NAME         │ BLOAT │ WASTE
  ────────┼─────────────┼────────────────────────────┼───────┼─────────────
    table │ public      │ very_bloated_table         │  41.0 │ 700 MB
    table │ public      │ my_table                   │   4.0 │ 76 MB
    table │ public      │ happy_table                │   1.0 │ 1472 kB
    index │ public      │ happy_table::my_nice_index │   0.7 │ 880 kB

用法

1
supabase inspect db bloat

标志

  • --db-url <string>
    可选

    检查由连接字符串指定的数据库(必须进行百分比编码)。

  • --linked
    可选

    检查链接项目。

  • --local
    可选

    检查本地数据库。


supabase inspect db blocking

此命令显示当前持有锁并阻塞的语句,以及正在被阻塞的语句。这可以与 inspect db locks 结合使用,以确定需要终止哪些语句才能解决锁争用。

    BLOCKED PID │ BLOCKING STATEMENT           │ BLOCKING DURATION │ BLOCKING PID │ BLOCKED STATEMENT                                                                      │ BLOCKED DURATION
  ──────────────┼──────────────────────────────┼───────────────────┼──────────────┼────────────────────────────────────────────────────────────────────────────────────────┼───────────────────
    253         │ select count(*) from mytable │ 00:00:03.838314   │        13495 │ UPDATE "mytable" SET "updated_at" = '2023─08─03 14:07:04.746688' WHERE "id" = 83719341 │ 00:00:03.821826

用法

1
supabase inspect db blocking

标志

  • --db-url <string>
    可选

    检查由连接字符串指定的数据库(必须进行百分比编码)。

  • --linked
    可选

    检查链接项目。

  • --local
    可选

    检查本地数据库。


supabase inspect db calls

此命令与 supabase inspect db outliers 命令非常相似,但按语句被调用的次数排序。

您可以使用此信息查看哪些查询被调用最频繁,这些查询可能成为优化的良好候选者。


                        QUERY                      │ TOTAL EXECUTION TIME │ PROPORTION OF TOTAL EXEC TIME │ NUMBER CALLS │  SYNC IO TIME
  ─────────────────────────────────────────────────┼──────────────────────┼───────────────────────────────┼──────────────┼──────────────────
    SELECT * FROM users WHERE id = $1              │ 14:50:11.828939      │ 89.8%                         │  183,389,757 │ 00:00:00.002018
    SELECT * FROM user_events                      │ 01:20:23.466633      │ 1.4%                          │       78,325 │ 00:00:00
    INSERT INTO users (email, name) VALUES ($1, $2)│ 00:40:11.616882      │ 0.8%                          │       54,003 │ 00:00:00.000322

用法

1
supabase inspect db calls

标志

  • --db-url <string>
    可选

    检查由连接字符串指定的数据库(必须进行百分比编码)。

  • --linked
    可选

    检查链接项目。

  • --local
    可选

    检查本地数据库。


supabase inspect db db-stats

用法

1
supabase inspect db db-stats

标志

  • --db-url <string>
    可选

    检查由连接字符串指定的数据库(必须进行百分比编码)。

  • --linked
    可选

    检查链接项目。

  • --local
    可选

    检查本地数据库。


supabase inspect db index-stats

用法

1
supabase inspect db index-stats

标志

  • --db-url <string>
    可选

    检查由连接字符串指定的数据库(必须进行百分比编码)。

  • --linked
    可选

    检查链接项目。

  • --local
    可选

    检查本地数据库。


supabase inspect db locks

此命令显示已对关系取出排他锁的查询。排他锁通常会阻止在该关系上进行其他操作,并可能导致“挂起”的查询等待授予锁。

如果您看到一个查询长时间挂起或导致阻塞问题,您可以考虑通过连接到数据库并运行 SELECT pg_cancel_backend(PID); 来终止查询。如果查询仍然没有停止,您可以通过运行 SELECT pg_terminate_backend(PID); 强制停止。

     PID   │ RELNAME │ TRANSACTION ID │ GRANTED │                  QUERY                  │   AGE
  ─────────┼─────────┼────────────────┼─────────┼─────────────────────────────────────────┼───────────
    328112 │ null    │              0 │ t       │ SELECT * FROM logs;                     │ 00:04:20

用法

1
supabase inspect db locks

标志

  • --db-url <string>
    可选

    检查由连接字符串指定的数据库(必须进行百分比编码)。

  • --linked
    可选

    检查链接项目。

  • --local
    可选

    检查本地数据库。


supabase inspect db long-running-queries

此命令显示当前正在运行的查询,这些查询已运行超过 5 分钟,按持续时间降序排列。长时间运行的查询可能是多个问题的根源,例如阻止 DDL 语句完成或 vacuum 无法更新 relfrozenxid

  PID  │     DURATION    │                                         QUERY
───────┼─────────────────┼───────────────────────────────────────────────────────────────────────────────────────
 19578 | 02:29:11.200129 | EXPLAIN SELECT  "students".* FROM "students"  WHERE "students"."id" = 1450645 LIMIT 1
 19465 | 02:26:05.542653 | EXPLAIN SELECT  "students".* FROM "students"  WHERE "students"."id" = 1889881 LIMIT 1
 19632 | 02:24:46.962818 | EXPLAIN SELECT  "students".* FROM "students"  WHERE "students"."id" = 1581884 LIMIT 1

用法

1
supabase inspect db long-running-queries

标志

  • --db-url <string>
    可选

    检查由连接字符串指定的数据库(必须进行百分比编码)。

  • --linked
    可选

    检查链接项目。

  • --local
    可选

    检查本地数据库。


supabase inspect db outliers

此命令显示从 pg_stat_statements 获取的语句,按聚合执行时间排序。这包括语句本身、该语句的总执行时间、该语句占所有语句总执行时间的比例、该语句被调用的次数以及该语句在同步 I/O(从文件系统读取/写入)上花费的时间。

通常,高效的查询将具有适当的调用与总执行时间比率,并尽可能少地花费在 I/O 上。总执行时间高但调用计数低的查询应进行调查以提高其性能。同步 I/O 上花费的执行时间比例高的查询也应进行调查。


                 QUERY                   │ EXECUTION TIME   │ PROPORTION OF EXEC TIME │ NUMBER CALLS │ SYNC IO TIME
─────────────────────────────────────────┼──────────────────┼─────────────────────────┼──────────────┼───────────────
 SELECT * FROM archivable_usage_events.. │ 154:39:26.431466 │ 72.2%                   │ 34,211,877   │ 00:00:00
 COPY public.archivable_usage_events (.. │ 50:38:33.198418  │ 23.6%                   │ 13           │ 13:34:21.00108
 COPY public.usage_events (id, reporte.. │ 02:32:16.335233  │ 1.2%                    │ 13           │ 00:34:19.784318
 INSERT INTO usage_events (id, retaine.. │ 01:42:59.436532  │ 0.8%                    │ 12,328,187   │ 00:00:00
 SELECT * FROM usage_events WHERE (alp.. │ 01:18:10.754354  │ 0.6%                    │ 102,114,301  │ 00:00:00

用法

1
supabase inspect db outliers

标志

  • --db-url <string>
    可选

    检查由连接字符串指定的数据库(必须进行百分比编码)。

  • --linked
    可选

    检查链接项目。

  • --local
    可选

    检查本地数据库。


supabase inspect db replication-slots

此命令显示有关数据库上设置的逻辑复制槽的信息。它显示槽是否处于活动状态,WAL 发送进程的状态(“startup”、“catchup”、“streaming”、“backup”、“stopping”),复制客户端地址以及以 GB 为单位的复制延迟。

此命令可用于检查复制延迟量是否尽可能低,复制延迟可能由于网络延迟问题、慢磁盘 I/O、长时间运行的事务或订阅者无法足够快地消费 WAL 而发生。

                       NAME                    │ ACTIVE │ STATE   │ REPLICATION CLIENT ADDRESS │ REPLICATION LAG GB
  ─────────────────────────────────────────────┼────────┼─────────┼────────────────────────────┼─────────────────────
    supabase_realtime_replication_slot         │ t      │ N/A     │ N/A                        │                  0
    datastream                                 │ t      │ catchup │ 24.201.24.106              │                 45

用法

1
supabase inspect db replication-slots

标志

  • --db-url <string>
    可选

    检查由连接字符串指定的数据库(必须进行百分比编码)。

  • --linked
    可选

    检查链接项目。

  • --local
    可选

    检查本地数据库。


supabase inspect db role-stats

用法

1
supabase inspect db role-stats

标志

  • --db-url <string>
    可选

    检查由连接字符串指定的数据库(必须进行百分比编码)。

  • --linked
    可选

    检查链接项目。

  • --local
    可选

    检查本地数据库。


supabase inspect db table-stats

用法

1
supabase inspect db table-stats

标志

  • --db-url <string>
    可选

    检查由连接字符串指定的数据库(必须进行百分比编码)。

  • --linked
    可选

    检查链接项目。

  • --local
    可选

    检查本地数据库。


supabase inspect db traffic-profile

此命令分析表 I/O 模式,以根据块级操作显示读/写活动比率。它结合了 PostgreSQL 的 pg_stat_user_tables(用于元组操作)和 pg_statio_user_tables(用于块 I/O)中的数据,以对每个表的工作负载配置文件进行分类。

该命令将表分类为:

  • 读密集型 - 读取操作是写入操作的 5 倍以上(例如,1:10、1:50)
  • 写密集型 - 写入操作是读取操作的 20% 以上(例如,1:2、1:4、2:1、10:1)
  • 平衡型 - 混合工作负载,写入量在读取量的 20% 到 500% 之间
  • 只读 - 仅检测到读取操作
  • 只写 - 仅检测到写入操作
SCHEMA │ TABLE        │ BLOCKS READ │ WRITE TUPLES │ BLOCKS WRITE │ ACTIVITY RATIO
───────┼──────────────┼─────────────┼──────────────┼──────────────┼────────────────────
public │ user_events  │     450,234 │     9,004,680│       23,450 │ 20:1 (Write-Heavy)
public │ users        │      89,203 │        12,451│        1,203 │ 7.2:1 (Read-Heavy)
public │ sessions     │      15,402 │        14,823│        2,341 │ ≈1:1 (Balanced)
public │ cache_data   │     123,456 │             0│            0 │ Read-Only
auth   │ audit_logs   │           0 │        98,234│       12,341 │ Write-Only

注意:此命令仅显示具有读写活动的表。不显示没有 I/O 操作的表。分类比率阈值(默认值:5:1)决定了表何时被认为是单向“密集型”与平衡型。

用法

1
supabase inspect db traffic-profile

标志

  • --db-url <string>
    可选

    检查由连接字符串指定的数据库(必须进行百分比编码)。

  • --linked
    可选

    检查链接项目。

  • --local
    可选

    检查本地数据库。


supabase inspect db vacuum-stats

这显示了每个表的 vacuum 活动统计信息。由于 Postgres 的 MVCC,当数据更新或删除时,会创建新行,旧行将变为不可见并标记为“死元组”。通常,autovacuum 进程会异步清理死元组。

该命令列出了上次 vacuum 和上次自动 vacuum 发生的时间,表的行数以及死行数,以及是否预期自动 vacuum 运行。如果死行数远高于行数,或者预期自动 vacuum 但已有一段时间未执行,这可能表明自动 vacuum 无法跟上,并且需要调整您的 vacuum 设置,或者您需要更多的计算或磁盘 IOPS 以允许自动 vacuum 完成。

        SCHEMA        │              TABLE               │ LAST VACUUM │ LAST AUTO VACUUM │      ROW COUNT       │ DEAD ROW COUNT │ EXPECT AUTOVACUUM?
──────────────────────┼──────────────────────────────────┼─────────────┼──────────────────┼──────────────────────┼────────────────┼─────────────────────
 auth                 │ users                            │             │ 2023-06-26 12:34 │               18,030 │              0 │ no
 public               │ profiles                         │             │ 2023-06-26 23:45 │               13,420 │             28 │ no
 public               │ logs                             │             │ 2023-06-26 01:23 │            1,313,033 │      3,318,228 │ yes
 storage              │ objects                          │             │                  │             No stats │              0 │ no
 storage              │ buckets                          │             │                  │             No stats │              0 │ no
 supabase_migrations  │ schema_migrations                │             │                  │             No stats │              0 │ no

用法

1
supabase inspect db vacuum-stats

标志

  • --db-url <string>
    可选

    检查由连接字符串指定的数据库(必须进行百分比编码)。

  • --linked
    可选

    检查链接项目。

  • --local
    可选

    检查本地数据库。


supabase inspect report

用法

1
supabase inspect report [flags]

标志

  • --output-dir <string>
    可选

    保存 CSV 文件的路径

  • --db-url <string>
    可选

    检查由连接字符串指定的数据库(必须进行百分比编码)。

  • --linked
    可选

    检查链接项目。

  • --local
    可选

    检查本地数据库。


supabase orgs


supabase orgs create

为已登录用户创建一个组织。

用法

1
supabase orgs create

supabase orgs list

列出已登录用户所属的所有组织。

用法

1
supabase orgs list

supabase projects

提供用于创建和管理您的 Supabase 项目的工具。

此命令组允许您列出组织中的所有项目、创建新项目、删除现有项目和检索 API 密钥。这些操作帮助您以编程方式管理 Supabase 基础设施,而无需使用仪表板。

通过 CLI 进行项目管理对于自动化脚本以及需要以可重复方式提供环境时特别有用。

子命令


supabase projects create

用法

1
supabase projects create [project name] [flags]

标志

  • --db-password <string>
    可选

    项目的数据库密码。

  • --org-id <string>
    可选

    要在其中创建项目的组织 ID。

  • --region <string>
    可选

    选择靠近您的区域以获得最佳性能。

  • --size <string>
    可选

    为您的项目选择所需的实例大小。


supabase projects list

列出已登录用户可以访问的所有 Supabase 项目。

用法

1
supabase projects list

supabase projects api-keys

用法

1
supabase projects api-keys [flags]

标志

  • --project-ref <string>
    可选

    Supabase 项目的项目参考。


supabase projects delete

用法

1
supabase projects delete [ref]

supabase config


supabase config push

使用本地 supabase/config.toml 文件更新链接 Supabase 项目的配置。

此命令允许您通过在本地定义设置然后将其推送到远程项目来将项目配置作为代码进行管理。

用法

1
supabase config push

标志

  • --project-ref <string>
    可选

    Supabase 项目的项目参考。


supabase branches


supabase branches create

为链接项目创建一个预览分支。

用法

1
supabase branches create [name] [flags]

标志

  • --notify-url <string>
    可选

    分支健康活跃时通知的 URL。

  • --persistent
    可选

    是否创建持久分支。

  • --region <string>
    可选

    选择部署分支数据库的区域。

  • --size <string>
    可选

    选择分支数据库所需的实例大小。

  • --with-data
    可选

    是否将生产数据克隆到分支数据库。

  • --project-ref <string>
    可选

    Supabase 项目的项目参考。


supabase branches list

列出链接项目的所有预览分支。

用法

1
supabase branches list

标志

  • --project-ref <string>
    可选

    Supabase 项目的项目参考。


supabase branches get

检索指定预览分支的详细信息。

用法

1
supabase branches get [name]

标志

  • --project-ref <string>
    可选

    Supabase 项目的项目参考。


supabase branches update

按名称或 ID 更新预览分支。

用法

1
supabase branches update [name] [flags]

标志

  • --git-branch <string>
    可选

    更改关联的 git 分支。

  • --name <string>
    可选

    重命名预览分支。

  • --notify-url <string>
    可选

    分支健康活跃时通知的 URL。

  • --persistent
    可选

    在临时和持久分支之间切换。

  • --status <string>
    可选

    覆盖当前分支状态。

  • --project-ref <string>
    可选

    Supabase 项目的项目参考。


supabase branches pause

用法

1
supabase branches pause [name]

标志

  • --project-ref <string>
    可选

    Supabase 项目的项目参考。


supabase branches unpause

用法

1
supabase branches unpause [name]

标志

  • --project-ref <string>
    可选

    Supabase 项目的项目参考。


supabase branches delete

按名称或 ID 删除预览分支。

用法

1
supabase branches delete [name]

标志

  • --project-ref <string>
    可选

    Supabase 项目的项目参考。


supabase functions

管理 Supabase 边缘函数。

Supabase 边缘函数是运行在靠近用户位置的无服务器函数。

边缘函数允许您执行自定义服务器端代码,而无需部署或扩展传统服务器。它们非常适合处理 Webhook、自定义 API 端点、数据验证和提供个性化内容。

边缘函数用 TypeScript 编写,并在 Deno 兼容的边缘运行时上运行,这是一种安全的运行时,无需包管理,冷启动速度快,并内置安全性。

子命令


supabase functions new

supabase/functions 目录中创建一个带有样板代码的新边缘函数。

此命令生成一个带有必要的 Deno 导入和基本函数结构的入门 TypeScript 文件。该函数将作为一个新目录创建,其名称由您指定,其中包含一个带有函数代码的 index.ts 文件。

创建函数后,您可以在本地编辑它,然后使用 supabase functions serve 在使用 supabase functions deploy 部署之前对其进行测试。

用法

1
supabase functions new <Function name>

supabase functions list

列出链接 Supabase 项目中的所有函数。

用法

1
supabase functions list [flags]

标志

  • --project-ref <string>
    可选

    Supabase 项目的项目参考。


supabase functions download

从链接 Supabase 项目下载函数的源代码。如果未提供函数名称,则下载所有函数。

用法

1
supabase functions download [Function name] [flags]

标志

  • --project-ref <string>
    可选

    Supabase 项目的项目参考。

  • --use-api
    可选

    在服务器端解包函数,不使用 Docker。


supabase functions serve

在本地提供所有函数服务。

supabase functions serve 命令包含其他标志,以帮助开发人员通过 v8 检查器协议调试边缘函数,例如通过 Chrome DevTools、VS Code 和 IntelliJ IDEA 进行调试。有关设置说明,请参阅文档指南

  1. --inspect

    • --inspect-mode brk 的别名。
  2. --inspect-mode [ run | brk | wait ]

    • 激活检查器功能。
    • run 模式仅允许连接,不带额外行为。它不适用于短脚本,但对于长时间运行的脚本,您可能偶尔需要设置断点。
    • brk 模式与 run 模式相同,但额外在第一行设置一个断点,以便在任何代码运行之前暂停脚本执行。
    • wait 模式类似于 brk 模式,但它不是在第一行设置断点,而是暂停脚本执行直到连接了检查器会话。
  3. --inspect-main

    • 只能在启用上述两个标志之一时使用。
    • 默认情况下,不允许为主工作程序创建检查器会话,但此标志允许。
    • 其他行为遵循上述 inspect-mode 标志。

此外,以下属性可以通过 supabase/config.toml 中的 edge_runtime 部分进行自定义。

  1. inspector_port
    • 用于监听检查器会话的端口,默认为 8083。
  2. policy
    • 一个值,指示 edge-runtime 应如何将传入的 HTTP 请求转发给工作程序。
    • per_worker 允许将多个 HTTP 请求转发给已创建的工作程序。
    • oneshot 将强制工作程序处理单个 HTTP 请求然后退出。(调试目的,如果您希望立即反映所做的更改,这特别有用。)

用法

1
supabase functions serve [flags]

标志

  • --env-file <string>
    可选

    要填充到函数环境的 env 文件的路径。

  • --import-map <string>
    可选

    导入映射文件的路径。

  • --inspect
    可选

    --inspect-mode brk 的别名。

  • --inspect-main
    可选

    允许检查主工作程序。

  • --inspect-mode <[ run | brk | wait ]>
    可选

    激活调试器的检查器功能。

  • --no-verify-jwt
    可选

    禁用函数的 JWT 验证。


supabase functions deploy

将函数部署到链接的 Supabase 项目。

用法

1
supabase functions deploy [Function name] [flags]

标志

  • --import-map <string>
    可选

    导入映射文件的路径。

  • -j, --jobs <uint>
    可选

    最大并行作业数。

  • --no-verify-jwt
    可选

    禁用函数的 JWT 验证。

  • --project-ref <string>
    可选

    Supabase 项目的项目参考。

  • --prune
    可选

    删除存在于 Supabase 项目中但本地不存在的函数。

  • --use-api
    可选

    在服务器端打包函数,不使用 Docker。


supabase functions delete

从链接的 Supabase 项目中删除函数。这不会在本地删除函数。

用法

1
supabase functions delete <Function name> [flags]

标志

  • --project-ref <string>
    可选

    Supabase 项目的项目参考。


supabase secrets

提供用于管理 Supabase 项目的环境变量和秘密的工具。

此命令组允许您设置、取消设置和列出安全存储并作为环境变量提供给边缘函数的秘密。

通过 CLI 进行秘密管理对于以下方面非常有用:

  • 设置特定于环境的配置
  • 安全管理敏感凭据

秘密可以单独设置,也可以从 .env 文件加载,以方便起见。

子命令


supabase secrets set

为链接的 Supabase 项目设置一个或多个秘密。

用法

1
supabase secrets set <NAME=VALUE> ... [flags]

标志

  • --env-file <string>
    可选

    从 .env 文件读取秘密。

  • --project-ref <string>
    可选

    Supabase 项目的项目参考。


supabase secrets list

列出链接项目中的所有秘密。

用法

1
supabase secrets list

标志

  • --project-ref <string>
    可选

    Supabase 项目的项目参考。


supabase secrets unset

从链接的 Supabase 项目中取消设置一个或多个秘密。

用法

1
supabase secrets unset [NAME] ...

标志

  • --project-ref <string>
    可选

    Supabase 项目的项目参考。


supabase storage


supabase storage ls

用法

1
supabase storage ls [path] [flags]

标志

  • -r, --recursive
    可选

    递归列出目录。

  • --experimental
    必需

    启用实验性功能

  • --linked
    可选

    连接到链接项目的存储 API。

  • --local
    可选

    连接到本地数据库的存储 API。


supabase storage cp

用法

1
supabase storage cp <src> <dst> [flags]

标志

  • --cache-control <string>
    可选

    HTTP 上传的自定义 Cache-Control 头。

  • --content-type <string>
    可选

    HTTP 上传的自定义 Content-Type 头。

  • -j, --jobs <uint>
    可选

    最大并行作业数。

  • -r, --recursive
    可选

    递归复制目录。

  • --experimental
    必需

    启用实验性功能

  • --linked
    可选

    连接到链接项目的存储 API。

  • --local
    可选

    连接到本地数据库的存储 API。


supabase storage mv

用法

1
supabase storage mv <src> <dst> [flags]

标志

  • -r, --recursive
    可选

    递归移动目录。

  • --experimental
    必需

    启用实验性功能

  • --linked
    可选

    连接到链接项目的存储 API。

  • --local
    可选

    连接到本地数据库的存储 API。


supabase storage rm

用法

1
supabase storage rm <file> ... [flags]

标志

  • -r, --recursive
    可选

    递归删除目录。

  • --experimental
    必需

    启用实验性功能

  • --linked
    可选

    连接到链接项目的存储 API。

  • --local
    可选

    连接到本地数据库的存储 API。


supabase sso


supabase sso add

添加和配置到您的 Supabase 项目的 SSO 身份提供者的新连接。

用法

1
supabase sso add [flags]

标志

  • --attribute-mapping-file <string>
    可选

    包含 SAML 属性到自定义 JWT 声明的 JSON 映射的文件。

  • --domains <strings>
    可选

    与添加的身份提供者关联的电子邮件域的逗号分隔列表。

  • --metadata-file <string>
    可选

    包含描述身份提供者的 SAML 2.0 元数据 XML 文档的文件。

  • --metadata-url <string>
    可选

    指向描述身份提供者的 SAML 2.0 元数据 XML 文档的 URL。

  • --name-id-format <string>
    可选

    表示基于字符串的标识符信息分类的 URI 引用。

  • --skip-url-validation
    可选

    是否不执行 SAML 2.0 元数据 URL 的本地验证。

  • -t, --type <[ saml ]>
    必需

    身份提供者的类型(根据支持的协议)。

  • --project-ref <string>
    可选

    Supabase 项目的项目参考。

1
supabase sso add \
2
--project-ref abcdefgijklmnopqrst \
3
--type saml \
4
--metadata-url 'https://...' \
5
--domains company.com

响应

1
Information about the added identity provider. You can use
2
company.com as the domain name on the frontend side to initiate a SSO
3
request to the identity provider.

supabase sso list

列出您的 Supabase 项目的所有 SSO 身份提供者连接。

用法

1
supabase sso list

标志

  • --project-ref <string>
    可选

    Supabase 项目的项目参考。


supabase sso show

提供有关已建立的身份提供者连接的信息。您可以使用 --metadata 获取存储在项目配置中的原始 SAML 2.0 元数据 XML 文档。

用法

1
supabase sso show <provider-id> [flags]

标志

  • --metadata
    可选

    仅显示 SAML 2.0 XML 元数据

  • --project-ref <string>
    可选

    Supabase 项目的项目参考。

1
supabase sso show 6df4d73f-bf21-405f-a084-b11adf19fea5 \
2
--project-ref abcdefghijklmnopqrst

响应

1
Information about the identity provider in pretty output.

supabase sso info

返回项目注册 SAML 2.0 兼容身份提供者所需的所有重要 SSO 信息。

用法

1
supabase sso info

标志

  • --project-ref <string>
    可选

    Supabase 项目的项目参考。

1
supabase sso info --project-ref abcdefghijklmnopqrst

响应

1
Information about your project's SAML 2.0 configuration.

supabase sso update

更新已添加的 SSO 身份提供者的配置设置。

用法

1
supabase sso update <provider-id> [flags]

标志

  • --add-domains <strings>
    可选

    将此逗号分隔的电子邮件域列表添加到身份提供者。

  • --attribute-mapping-file <string>
    可选

    包含 SAML 属性到自定义 JWT 声明的 JSON 映射的文件。

  • --domains <strings>
    可选

    将域替换为这个逗号分隔的电子邮件域列表。

  • --metadata-file <string>
    可选

    包含描述身份提供者的 SAML 2.0 元数据 XML 文档的文件。

  • --metadata-url <string>
    可选

    指向描述身份提供者的 SAML 2.0 元数据 XML 文档的 URL。

  • --name-id-format <string>
    可选

    表示基于字符串的标识符信息分类的 URI 引用。

  • --remove-domains <strings>
    可选

    从身份提供者中删除此逗号分隔的电子邮件域列表。

  • --skip-url-validation
    可选

    是否不执行 SAML 2.0 元数据 URL 的本地验证。

  • --project-ref <string>
    可选

    Supabase 项目的项目参考。

1
supabase sso update 6df4d73f-bf21-405f-a084-b11adf19fea5 \
2
--project-ref abcdefghijklmnopqrst \
3
--domains new-company.com,new-company.net

响应

1
Information about the updated provider.

supabase sso remove

删除与已添加的 SSO 身份提供者的连接。删除提供者将阻止现有用户登录。请谨慎使用此命令。

用法

1
supabase sso remove <provider-id>

标志

  • --project-ref <string>
    可选

    Supabase 项目的项目参考。

1
supabase sso remove 6df4d73f-bf21-405f-a084-b11adf19fea5 \
2
--project-ref abcdefghijklmnopqrst

响应

1
Information about the removed identity provider. It's a good idea to
2
save this in case you need it later on.

supabase domains

管理 Supabase 项目的自定义域名。

自定义域名和个性化子域名不能同时使用。

子命令


supabase domains activate

激活项目的自定义主机名配置。

这将重新配置您的 Supabase 项目以响应自定义主机名上的请求。

自定义主机名激活后,您的项目第三方身份验证提供程序将不再在 Supabase 提供的子域上运行。请参阅我们文档中的准备激活您的域部分,了解您需要遵循的步骤。

用法

1
supabase domains activate

标志

  • --include-raw-output
    可选

    包括原始输出(对调试有用)。

  • --project-ref <string>
    可选

    Supabase 项目的项目参考。


supabase domains create

为您的 Supabase 项目创建一个自定义主机名。

期望您的自定义主机名具有指向您的 Supabase 项目子域的 CNAME 记录。

用法

1
supabase domains create [flags]

标志

  • --custom-hostname <string>
    可选

    用于您的 Supabase 项目的自定义主机名。

  • --include-raw-output
    可选

    包括原始输出(对调试有用)。

  • --project-ref <string>
    可选

    Supabase 项目的项目参考。


supabase domains get

检索您的项目在 Supabase 平台中存储的自定义主机名配置。

用法

1
supabase domains get

标志

  • --include-raw-output
    可选

    包括原始输出(对调试有用)。

  • --project-ref <string>
    可选

    Supabase 项目的项目参考。


supabase domains reverify

用法

1
supabase domains reverify

标志

  • --include-raw-output
    可选

    包括原始输出(对调试有用)。

  • --project-ref <string>
    可选

    Supabase 项目的项目参考。


supabase domains delete

用法

1
supabase domains delete

标志

  • --include-raw-output
    可选

    包括原始输出(对调试有用)。

  • --project-ref <string>
    可选

    Supabase 项目的项目参考。


supabase vanity-subdomains

管理 Supabase 项目的个性化子域名。

个性化子域名和自定义域名的使用是互斥的。

子命令


supabase vanity-subdomains activate

为您的 Supabase 项目激活个性化子域名。

这将重新配置您的 Supabase 项目以响应您的个性化子域名上的请求。个性化子域名激活后,您的项目的身份验证服务将不再在 {project-ref}.{supabase-domain} 主机名上运行。

用法

1
supabase vanity-subdomains activate [flags]

标志

  • --desired-subdomain <string>
    可选

    您希望用于您的 Supabase 项目的个性化子域名。

  • --experimental
    必需

    启用实验性功能

  • --project-ref <string>
    可选

    Supabase 项目的项目参考。


supabase vanity-subdomains get

用法

1
supabase vanity-subdomains get

标志

  • --experimental
    必需

    启用实验性功能

  • --project-ref <string>
    可选

    Supabase 项目的项目参考。


supabase vanity-subdomains check-availability

用法

1
supabase vanity-subdomains check-availability [flags]

标志

  • --desired-subdomain <string>
    可选

    您希望用于您的 Supabase 项目的个性化子域名。

  • --experimental
    必需

    启用实验性功能

  • --project-ref <string>
    可选

    Supabase 项目的项目参考。


supabase vanity-subdomains delete

删除项目的个性化子域名,并恢复使用项目参考进行路由。

用法

1
supabase vanity-subdomains delete

标志

  • --experimental
    必需

    启用实验性功能

  • --project-ref <string>
    可选

    Supabase 项目的项目参考。


supabase network-bans

网络禁令是指 IP 地址如果其流量模式看起来具有滥用性(例如多次身份验证失败)则会被暂时阻止。

子命令可帮助您查看当前的禁令,并根据需要解除 IP 阻止。

子命令


supabase network-bans get

用法

1
supabase network-bans get

标志

  • --experimental
    必需

    启用实验性功能

  • --project-ref <string>
    可选

    Supabase 项目的项目参考。


supabase network-bans remove

用法

1
supabase network-bans remove [flags]

标志

  • --db-unban-ip <strings>
    可选

    允许数据库连接的 IP。

  • --experimental
    必需

    启用实验性功能

  • --project-ref <string>
    可选

    Supabase 项目的项目参考。


supabase network-restrictions


supabase network-restrictions get

用法

1
supabase network-restrictions get

标志

  • --experimental
    必需

    启用实验性功能

  • --project-ref <string>
    可选

    Supabase 项目的项目参考。


supabase network-restrictions update

用法

1
supabase network-restrictions update [flags]

标志

  • --append
    可选

    附加到现有限制而不是替换它们。

  • --bypass-cidr-checks
    可选

    绕过一些 CIDR 验证检查。

  • --db-allow-cidr <strings>
    可选

    允许数据库连接的 CIDR。

  • --experimental
    必需

    启用实验性功能

  • --project-ref <string>
    可选

    Supabase 项目的项目参考。


supabase ssl-enforcement


supabase ssl-enforcement get

用法

1
supabase ssl-enforcement get

标志

  • --experimental
    必需

    启用实验性功能

  • --project-ref <string>
    可选

    Supabase 项目的项目参考。


supabase ssl-enforcement update

用法

1
supabase ssl-enforcement update [flags]

标志

  • --disable-db-ssl-enforcement
    可选

    数据库是否应禁用所有外部连接的 SSL 强制。

  • --enable-db-ssl-enforcement
    可选

    数据库是否应启用所有外部连接的 SSL 强制。

  • --experimental
    必需

    启用实验性功能

  • --project-ref <string>
    可选

    Supabase 项目的项目参考。


supabase postgres-config


supabase postgres-config get

用法

1
supabase postgres-config get

标志

  • --experimental
    必需

    启用实验性功能

  • --project-ref <string>
    可选

    Supabase 项目的项目参考。


supabase postgres-config update

覆盖默认的 Postgres 配置可能导致不稳定的数据库行为。自定义配置还会覆盖根据使用的计算附加组件生成的优化。

用法

1
supabase postgres-config update [flags]

标志

  • --config <strings>
    可选

    配置覆盖,指定为“key=value”对

  • --no-restart
    可选

    更新配置后不重启数据库。

  • --replace-existing-overrides
    可选

    如果为 true,则用提供的覆盖替换所有现有覆盖。如果为 false(默认),则将现有覆盖与提供的覆盖合并。

  • --experimental
    必需

    启用实验性功能

  • --project-ref <string>
    可选

    Supabase 项目的项目参考。


supabase postgres-config delete

删除特定的配置覆盖,将它们恢复为默认值。

用法

1
supabase postgres-config delete [flags]

标志

  • --config <strings>
    可选

    要删除的配置键(逗号分隔)

  • --no-restart
    可选

    删除配置后不重启数据库。

  • --experimental
    必需

    启用实验性功能

  • --project-ref <string>
    可选

    Supabase 项目的项目参考。


supabase snippets


supabase snippets list

列出链接项目的所有 SQL 片段。

用法

1
supabase snippets list

标志

  • --project-ref <string>
    可选

    Supabase 项目的项目参考。


supabase snippets download

下载指定 SQL 片段的内容。

用法

1
supabase snippets download <snippet-id>

标志

  • --project-ref <string>
    可选

    Supabase 项目的项目参考。


supabase services

用法

1
supabase services

supabase completion

为指定的 shell 生成 supabase 的自动补全脚本。有关如何使用生成的脚本的详细信息,请参阅每个子命令的帮助。

子命令


supabase completion zsh

为 zsh shell 生成自动补全脚本。

如果您的环境中尚未启用 shell 补全,则需要启用它。您可以执行以下操作一次

echo "autoload -U compinit; compinit" >> ~/.zshrc

在当前 shell 会话中加载补全

source <(supabase completion zsh)

要为每个新会话加载补全,请执行一次

Linux

supabase completion zsh > "${fpath[1]}/_supabase"

macOS

supabase completion zsh > $(brew --prefix)/share/zsh/site-functions/_supabase

您需要启动新的 shell 才能使此设置生效。

用法

1
supabase completion zsh [flags]

标志

  • --no-descriptions
    可选

    禁用补全描述


supabase completion powershell

为 powershell 生成自动补全脚本。

在当前 shell 会话中加载补全

supabase completion powershell | Out-String | Invoke-Expression

要为每个新会话加载补全,请将上述命令的输出添加到您的 powershell 配置文件中。

用法

1
supabase completion powershell [flags]

标志

  • --no-descriptions
    可选

    禁用补全描述


supabase completion fish

为 fish shell 生成自动补全脚本。

在当前 shell 会话中加载补全

supabase completion fish | source

要为每个新会话加载补全,请执行一次

supabase completion fish > ~/.config/fish/completions/supabase.fish

您需要启动新的 shell 才能使此设置生效。

用法

1
supabase completion fish [flags]

标志

  • --no-descriptions
    可选

    禁用补全描述


supabase completion bash

为 bash shell 生成自动补全脚本。

此脚本依赖于“bash-completion”包。如果尚未安装,您可以通过操作系统的包管理器安装它。

在当前 shell 会话中加载补全

source <(supabase completion bash)

要为每个新会话加载补全,请执行一次

Linux

supabase completion bash > /etc/bash_completion.d/supabase

macOS

supabase completion bash > $(brew --prefix)/etc/bash_completion.d/supabase

您需要启动新的 shell 才能使此设置生效。

用法

1
supabase completion bash

标志

  • --no-descriptions
    可选

    禁用补全描述