Supabase CLI
Supabase CLI 提供了在本地开发项目并部署到 Supabase 平台的工具。CLI 仍在开发中,但它包含了与 Supabase 项目和 Supabase 平台协作的所有功能。
- 在本地运行 Supabase:
supabase init和supabase start - 管理数据库迁移:
supabase migration - 用于发布到生产环境的 CI/CD:
supabase db push - 管理您的 Supabase 项目:
supabase projects - 直接从您的数据库模式生成类型:
supabase gen types- 一个社区支持的 GitHub Action 用于生成 TypeScript 类型
- Shell 自动补全:
supabase completion- 一个适用于 macOS 终端的社区支持的 Fig 自动补全规范
全局标志
Supabase CLI 支持每个命令的全局标志。
标志
为任何 CLI 错误创建支持工单
将调试日志输出到 stderr
使用指定的解析器查找域名
启用实验性功能
supabase 的帮助信息
使用指定的 docker 网络而不是生成的网络
状态变量的输出格式
使用特定配置文件连接到 Supabase API
Supabase 项目目录的路径
对所有提示回答“是”
supabase bootstrap
用法
1supabase bootstrap [template] [flags]标志
- -p, --password <string>可选
远程 Postgres 数据库的密码。
supabase init
初始化 Supabase 本地开发的配置。
在当前工作目录中创建 supabase/config.toml 文件。此配置特定于每个本地项目。
您可以通过指定
SUPABASE_WORKDIR环境变量或--workdir标志来覆盖目录路径。
除了 config.toml 之外,supabase 目录还可以包含其他 Supabase 对象,例如 migrations、functions、tests 等。
用法
1supabase init [flags]标志
- --force可选
覆盖现有的 supabase/config.toml。
- -i, --interactive可选
启用交互模式以配置 IDE 设置。
- --use-orioledb可选
将 OrioleDB 存储引擎用于 Postgres。
1supabase init响应
1Finished supabase init.supabase login
通过使用您的个人访问令牌登录,将 Supabase CLI 连接到您的 Supabase 帐户。
您的访问令牌安全地存储在原生凭据存储中。如果原生凭据存储不可用,它将写入 ~/.supabase/access-token 的纯文本文件。
如果不需要此行为,例如在 CI 环境中,您可以通过在其他命令中指定
SUPABASE_ACCESS_TOKEN环境变量来跳过登录。
Supabase CLI 使用存储的令牌访问项目、函数、秘密等管理 API。
用法
1supabase login [flags]标志
- --name <string>可选
将用于在设置中存储令牌的名称
- --no-browser可选
不自动打开浏览器
- --token <string>可选
使用提供的令牌而不是自动登录流程
1supabase login响应
1You can generate an access token from https://supabase.org.cn/dashboard/account/tokens2Enter your access token: sbp_****************************************3Finished supabase login.supabase link
将您的本地开发项目链接到托管的 Supabase 项目。
PostgREST 配置从 Supabase 平台获取,并根据您的本地配置文件进行验证。
可选地,如果您提供密码,可以验证数据库设置。您的数据库密码(如果可用)将保存在原生凭据存储中。
如果您不想被提示输入数据库密码,例如在 CI 环境中,您可以通过
SUPABASE_DB_PASSWORD环境变量明确指定它。
某些命令(如 db dump、db push 和 db pull)要求您的项目首先被链接。
用法
1supabase link [flags]标志
- -p, --password <string>可选
远程 Postgres 数据库的密码。
- --project-ref <string>可选
Supabase 项目的项目参考。
- --skip-pooler可选
使用直接连接而不是连接池。
1supabase link --project-ref ********************响应
1Enter your database password (or leave blank to skip): ********2Finished supabase link.supabase start
启动 Supabase 本地开发堆栈。
需要通过运行 supabase init 在当前工作目录中创建 supabase/config.toml。
默认情况下,所有服务容器都会启动。您可以通过传入 -x 标志来排除不需要的容器。要排除多个容器,可以传入逗号分隔的字符串,例如 -x gotrue,imgproxy,或者多次指定 -x 标志。
建议至少拥有 7GB RAM 以启动所有服务。
会自动添加健康检查以验证已启动的容器。使用 --ignore-health-check 标志忽略这些错误。
用法
1supabase 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 退出
1supabase start响应
1Creating custom roles supabase/roles.sql...2Applying migration 20220810154536_employee.sql...3Seeding data supabase/seed.sql...4Started supabase local development setup.supabase stop
停止 Supabase 本地开发堆栈。
需要通过运行 supabase init 在当前工作目录中创建 supabase/config.toml。
所有 Docker 资源在重启后都会保留。使用 --no-backup 标志在重启之间重置本地开发数据。
使用 --all 标志停止机器上所有本地 Supabase 项目实例。与 --no-backup 一起使用时请务必小心,因为它会删除所有 Supabase 本地项目数据。
用法
1supabase stop [flags]标志
- --all可选
停止机器上所有项目的所有本地 Supabase 实例。
- --no-backup可选
停止后删除所有数据卷。
- --project-id <string>可选
要停止的本地项目 ID。
1supabase stop响应
1Stopped supabase local development setup.2Local data are backed up to docker volume.supabase status
显示 Supabase 本地开发堆栈的状态。
需要通过运行 supabase start 或 supabase db start 启动本地开发堆栈。
您可以通过指定 -o env 标志导出连接参数以在本地初始化 supabase-js。支持的参数包括 JWT_SECRET、ANON_KEY 和 SERVICE_ROLE_KEY。
用法
1supabase status [flags]标志
- --override-name <strings>可选
覆盖特定变量名称。
1supabase status响应
1supabase local development setup is running.23 API URL: http://127.0.0.1:543214 GraphQL URL: http://127.0.0.1:54321/graphql/v15 DB URL: postgresql://postgres:postgres@127.0.0.1:54322/postgres6 Studio URL: http://127.0.0.1:543237 Inbucket URL: http://127.0.0.1:543248 JWT secret: super-secret-jwt-token-with-at-least-32-characters-long9 anon key: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJzdXBhYmFzZS1kZW1vIiwicm9sZSI6ImFub24iLCJleHAiOjE5ODM4MTI5OTZ9.CRXP1A7WOeoJeXxjNni43kdQwgnWNReilDMblYTn_I010service_role key: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJzdXBhYmFzZS1kZW1vIiwicm9sZSI6InNlcnZpY2Vfcm9sZSIsImV4cCI6MTk4MzgxMjk5Nn0.EGIM96RAZx35lJzdJsyH-qQwv8Hdp7fsn3W0YpN81IUsupabase test
supabase test db
对本地数据库执行 pgTAP 测试。
需要通过运行 supabase start 启动本地开发堆栈。
在容器中运行 pg_prove,并从 supabase/tests 目录挂载单元测试文件。测试文件可以以 .sql 或 .pg 扩展名结尾。
由于每个测试都封装在自己的事务中,因此无论成功或失败,它都会单独回滚。
用法
1supabase test db [path] ... [flags]标志
- --db-url <string>可选
测试由连接字符串指定的数据库(必须进行百分比编码)。
- --linked可选
在链接项目上运行 pgTAP 测试。
- --local可选
在本地数据库上运行 pgTAP 测试。
1supabase test db响应
1/tmp/supabase/tests/nested/order_test.pg .. ok2/tmp/supabase/tests/pet_test.sql .......... ok3All tests successful.4Files=2, Tests=2, 6 wallclock secs ( 0.03 usr 0.01 sys + 0.05 cusr 0.02 csys = 0.11 CPU)5Result: PASSsupabase test new
用法
1supabase 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
用法
1supabase gen signing-key [flags]标志
- --algorithm <[ RS256 | ES256 ]>可选
签名密钥生成的算法。
- --append可选
将新密钥附加到现有密钥文件而不是覆盖。
supabase gen types
用法
1supabase 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。
用法
1supabase db pull [migration name] [flags]标志
- --db-url <string>可选
从由连接字符串指定的数据库拉取(必须进行百分比编码)。
- --linked可选
从链接项目拉取。
- --local可选
从本地数据库拉取。
- -p, --password <string>可选
远程 Postgres 数据库的密码。
- -s, --schema <strings>可选
要包含的模式的逗号分隔列表。
1supabase db pull响应
1Connecting to remote database...2Schema written to supabase/migrations/20240414044403_remote_schema.sql3Update remote migration history table? [Y/n]4Repaired migration history: [20240414044403] => applied5Finished supabase db pull.6The 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 标志在应用之前查看更改列表。
用法
1supabase db push [flags]标志
- --db-url <string>可选
推送到由连接字符串指定的数据库(必须进行百分比编码)。
- --dry-run可选
打印将要应用的迁移,但不实际应用它们。
- --include-all可选
包含远程历史表中未找到的所有迁移。
- --include-roles可选
包含来自 supabase/roles.sql 的自定义角色。
- --include-seed可选
包含配置中的种子数据。
- --linked可选
推送到链接项目。
- --local可选
推送到本地数据库。
- -p, --password <string>可选
远程 Postgres 数据库的密码。
1supabase db push响应
1Linked 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 创建的任何自定义角色都不会被远程重置删除。
用法
1supabase db reset [flags]标志
- --db-url <string>可选
重置由连接字符串指定的数据库(必须进行百分比编码)。
- --last <uint>可选
重置最多最后 n 个迁移版本。
- --linked可选
使用本地迁移重置链接项目。
- --local可选
使用本地迁移重置本地数据库。
- --no-seed可选
重置后跳过运行种子脚本。
- --version <string>可选
重置到指定版本。
1supabase db reset响应
1Resetting database...2Initializing schema...3Applying migration 20220810154537_create_employees_table.sql...4Seeding data supabase/seed.sql...5Finished supabase db reset on branch main.supabase db dump
从远程数据库转储内容。
需要通过运行 supabase link 将您的本地项目链接到远程数据库。对于自托管数据库,您可以使用 --db-url 标志传入连接参数。
在容器中运行 pg_dump,并带有附加标志以排除 Supabase 管理的模式。忽略的模式包括 auth、storage 以及由扩展创建的模式。
默认转储不包含任何数据或自定义角色。要明确转储这些内容,请指定 --data-only 和 --role-only 标志。
用法
1supabase 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可选
使用复制语句代替插入。
1supabase db dump -f supabase/schema.sql响应
1Dumping schemas from remote database...2Dumped schema to supabase/schema.sql.supabase db diff
对比对本地或远程数据库所做的模式更改。
当与本地数据库对比时,需要本地开发堆栈正在运行。要与远程或自托管数据库对比,请分别指定 --linked 或 --db-url 标志。
在容器中运行 djrobstep/migra,以比较目标数据库和影子数据库之间的模式差异。影子数据库是通过在单独的容器中应用本地 supabase/migrations 目录中的迁移来创建的。输出默认写入 stdout。为方便起见,您还可以通过传入 -f 标志将模式差异保存为新的迁移文件。
默认情况下,目标数据库中的所有模式都会被对比。使用 --schema public,extensions 标志将对比限制为模式的子集。
虽然 diff 命令能够捕获大多数模式更改,但在某些情况下已知会失败。目前,如果您的模式包含以下内容,则可能会发生这种情况:
- 发布更改
- 存储桶更改
- 具有
security_invoker属性的视图
用法
1supabase 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 生成模式差异。
1supabase db diff -f my_table响应
1Connecting to local database...2Creating shadow database...3Applying migration 20230425064254_remote_commit.sql...4Diffing schemas: auth,extensions,public,storage5Finished supabase db diff on branch main.67No schema changes foundsupabase 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 条件使构建失败。
用法
1supabase db lint [flags]标志
- --db-url <string>可选
检查由连接字符串指定的数据库(必须进行百分比编码)。
- --fail-on <[ none | warning | error ]>可选
以非零状态退出的错误级别。
- --level <[ warning | error ]>可选
要发出的错误级别。
- --linked可选
检查链接项目的模式错误。
- --local可选
检查本地数据库的模式错误。
- -s, --schema <strings>可选
要包含的模式的逗号分隔列表。
1supabase db lint响应
1Linting schema: public23No schema errors foundsupabase db start
用法
1supabase db start [flags]标志
- --from-backup <string>可选
逻辑备份文件的路径。
supabase migration
supabase migration new
在本地创建新的迁移文件。
如果 workdir 中不存在 supabase/migrations 目录,则会创建它。所有模式迁移文件都必须在此目录中创建,遵循模式 <timestamp>_<name>.sql。
来自其他命令(如 db diff)的输出可以通过 stdin 管道传输到 migration new <name>。
用法
1supabase migration new <migration name>1supabase migration new schema_test响应
1Created 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 命令解决它们。
用法
1supabase migration list [flags]标志
- --db-url <string>可选
列出由连接字符串指定的数据库的迁移(必须进行百分比编码)。
- --linked可选
列出已应用于链接项目的迁移。
- --local可选
列出已应用于本地数据库的迁移。
- -p, --password <string>可选
远程 Postgres 数据库的密码。
1supabase migration list响应
1LOCAL │ REMOTE │ TIME (UTC)2─────────────────┼────────────────┼──────────────────────3 │ 20230103054303 │ 2023-01-03 05:43:034 │ 20230103093141 │ 2023-01-03 09:31:415 20230222032233 │ │ 2023-02-22 03:22:33supabase migration fetch
用法
1supabase 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
用法
1supabase migration repair [version] ... [flags]标志
- --db-url <string>可选
修复由连接字符串指定的数据库的迁移(必须进行百分比编码)。
- --linked可选
修复链接项目的迁移历史。
- --local可选
修复本地数据库的迁移历史。
- -p, --password <string>可选
远程 Postgres 数据库的密码。
- --status <[ applied | reverted ]>必需
要更新的版本状态。
1supabase migration repair 20230103054303 --status reverted响应
1Repaired migration history: 20230103054303 => revertedsupabase migration squash
将本地模式迁移合并到单个迁移文件。
合并后的迁移等同于应用现有迁移文件后本地数据库的仅模式转储。当您希望从迁移历史中删除同一模式的重复修改时,这特别有用。
然而,一个限制是数据操作语句(例如插入、更新或删除)在合并后的迁移中被省略。您必须在新迁移文件中手动添加它们。这包括 cron 作业、存储桶以及 vault 中任何加密的秘密。
默认情况下,最新的 <timestamp>_<name>.sql 文件将更新为包含合并后的迁移。您可以使用 --version <timestamp> 标志覆盖目标版本。
如果您的 supabase/migrations 目录为空,运行 supabase squash 将不执行任何操作。
用法
1supabase migration squash [flags]标志
- --db-url <string>可选
合并由连接字符串指定的数据库的迁移(必须进行百分比编码)。
- --linked可选
合并链接项目的迁移历史。
- --local可选
合并本地数据库的迁移历史。
- -p, --password <string>可选
远程 Postgres 数据库的密码。
- --version <string>可选
合并到指定版本。
supabase migration up
用法
1supabase migration up [flags]标志
- --db-url <string>可选
将迁移应用于由连接字符串指定的数据库(必须进行百分比编码)。
- --include-all可选
包含远程历史表中未找到的所有迁移。
- --linked可选
将待处理的迁移应用于链接项目。
- --local可选
将待处理的迁移应用于本地数据库。
supabase migration down
用法
1supabase migration down [flags]标志
- --db-url <string>可选
重置由连接字符串指定的数据库上已应用的迁移(必须进行百分比编码)。
- --last <uint>可选
重置最多最后 n 个迁移版本。
- --linked可选
重置链接项目上已应用的迁移。
- --local可选
重置本地数据库上已应用的迁移。
supabase seed
supabase seed buckets
用法
1supabase seed buckets标志
- --linked可选
为链接项目填充种子数据。
- --local可选
为本地数据库填充种子数据。
supabase inspect db
子命令
- supabase inspect db bloat
- supabase inspect db blocking
- supabase inspect db calls
- supabase inspect db db-stats
- supabase inspect db index-stats
- supabase inspect db locks
- supabase inspect db long-running-queries
- supabase inspect db outliers
- supabase inspect db replication-slots
- supabase inspect db role-stats
- supabase inspect db table-stats
- supabase inspect db traffic-profile
- supabase inspect db vacuum-stats
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
用法
1supabase 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
用法
1supabase 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
用法
1supabase inspect db calls标志
- --db-url <string>可选
检查由连接字符串指定的数据库(必须进行百分比编码)。
- --linked可选
检查链接项目。
- --local可选
检查本地数据库。
supabase inspect db db-stats
用法
1supabase inspect db db-stats标志
- --db-url <string>可选
检查由连接字符串指定的数据库(必须进行百分比编码)。
- --linked可选
检查链接项目。
- --local可选
检查本地数据库。
supabase inspect db index-stats
用法
1supabase 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
用法
1supabase 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
用法
1supabase 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
用法
1supabase 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
用法
1supabase inspect db replication-slots标志
- --db-url <string>可选
检查由连接字符串指定的数据库(必须进行百分比编码)。
- --linked可选
检查链接项目。
- --local可选
检查本地数据库。
supabase inspect db role-stats
用法
1supabase inspect db role-stats标志
- --db-url <string>可选
检查由连接字符串指定的数据库(必须进行百分比编码)。
- --linked可选
检查链接项目。
- --local可选
检查本地数据库。
supabase inspect db table-stats
用法
1supabase 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)决定了表何时被认为是单向“密集型”与平衡型。
用法
1supabase 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
用法
1supabase inspect db vacuum-stats标志
- --db-url <string>可选
检查由连接字符串指定的数据库(必须进行百分比编码)。
- --linked可选
检查链接项目。
- --local可选
检查本地数据库。
supabase inspect report
用法
1supabase inspect report [flags]标志
- --output-dir <string>可选
保存 CSV 文件的路径
- --db-url <string>可选
检查由连接字符串指定的数据库(必须进行百分比编码)。
- --linked可选
检查链接项目。
- --local可选
检查本地数据库。
supabase orgs
supabase orgs create
为已登录用户创建一个组织。
用法
1supabase orgs createsupabase orgs list
列出已登录用户所属的所有组织。
用法
1supabase orgs listsupabase projects
提供用于创建和管理您的 Supabase 项目的工具。
此命令组允许您列出组织中的所有项目、创建新项目、删除现有项目和检索 API 密钥。这些操作帮助您以编程方式管理 Supabase 基础设施,而无需使用仪表板。
通过 CLI 进行项目管理对于自动化脚本以及需要以可重复方式提供环境时特别有用。
子命令
supabase projects create
用法
1supabase projects create [project name] [flags]标志
- --db-password <string>可选
项目的数据库密码。
- --org-id <string>可选
要在其中创建项目的组织 ID。
- --region <string>可选
选择靠近您的区域以获得最佳性能。
- --size <string>可选
为您的项目选择所需的实例大小。
supabase projects list
列出已登录用户可以访问的所有 Supabase 项目。
用法
1supabase projects listsupabase projects api-keys
用法
1supabase projects api-keys [flags]标志
- --project-ref <string>可选
Supabase 项目的项目参考。
supabase projects delete
用法
1supabase projects delete [ref]supabase config
supabase config push
使用本地 supabase/config.toml 文件更新链接 Supabase 项目的配置。
此命令允许您通过在本地定义设置然后将其推送到远程项目来将项目配置作为代码进行管理。
用法
1supabase config push标志
- --project-ref <string>可选
Supabase 项目的项目参考。
supabase branches
supabase branches create
为链接项目创建一个预览分支。
用法
1supabase branches create [name] [flags]标志
- --notify-url <string>可选
分支健康活跃时通知的 URL。
- --persistent可选
是否创建持久分支。
- --region <string>可选
选择部署分支数据库的区域。
- --size <string>可选
选择分支数据库所需的实例大小。
- --with-data可选
是否将生产数据克隆到分支数据库。
- --project-ref <string>可选
Supabase 项目的项目参考。
supabase branches list
列出链接项目的所有预览分支。
用法
1supabase branches list标志
- --project-ref <string>可选
Supabase 项目的项目参考。
supabase branches get
检索指定预览分支的详细信息。
用法
1supabase branches get [name]标志
- --project-ref <string>可选
Supabase 项目的项目参考。
supabase branches update
按名称或 ID 更新预览分支。
用法
1supabase branches update [name] [flags]标志
- --git-branch <string>可选
更改关联的 git 分支。
- --name <string>可选
重命名预览分支。
- --notify-url <string>可选
分支健康活跃时通知的 URL。
- --persistent可选
在临时和持久分支之间切换。
- --status <string>可选
覆盖当前分支状态。
- --project-ref <string>可选
Supabase 项目的项目参考。
supabase branches pause
用法
1supabase branches pause [name]标志
- --project-ref <string>可选
Supabase 项目的项目参考。
supabase branches unpause
用法
1supabase branches unpause [name]标志
- --project-ref <string>可选
Supabase 项目的项目参考。
supabase branches delete
按名称或 ID 删除预览分支。
用法
1supabase 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 部署之前对其进行测试。
用法
1supabase functions new <Function name>supabase functions list
列出链接 Supabase 项目中的所有函数。
用法
1supabase functions list [flags]标志
- --project-ref <string>可选
Supabase 项目的项目参考。
supabase functions download
从链接 Supabase 项目下载函数的源代码。如果未提供函数名称,则下载所有函数。
用法
1supabase 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 进行调试。有关设置说明,请参阅文档指南。
-
--inspect--inspect-mode brk的别名。
-
--inspect-mode [ run | brk | wait ]- 激活检查器功能。
run模式仅允许连接,不带额外行为。它不适用于短脚本,但对于长时间运行的脚本,您可能偶尔需要设置断点。brk模式与run模式相同,但额外在第一行设置一个断点,以便在任何代码运行之前暂停脚本执行。wait模式类似于brk模式,但它不是在第一行设置断点,而是暂停脚本执行直到连接了检查器会话。
-
--inspect-main- 只能在启用上述两个标志之一时使用。
- 默认情况下,不允许为主工作程序创建检查器会话,但此标志允许。
- 其他行为遵循上述
inspect-mode标志。
此外,以下属性可以通过 supabase/config.toml 中的 edge_runtime 部分进行自定义。
inspector_port- 用于监听检查器会话的端口,默认为 8083。
policy- 一个值,指示 edge-runtime 应如何将传入的 HTTP 请求转发给工作程序。
per_worker允许将多个 HTTP 请求转发给已创建的工作程序。oneshot将强制工作程序处理单个 HTTP 请求然后退出。(调试目的,如果您希望立即反映所做的更改,这特别有用。)
用法
1supabase 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 项目。
用法
1supabase 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 项目中删除函数。这不会在本地删除函数。
用法
1supabase functions delete <Function name> [flags]标志
- --project-ref <string>可选
Supabase 项目的项目参考。
supabase secrets
提供用于管理 Supabase 项目的环境变量和秘密的工具。
此命令组允许您设置、取消设置和列出安全存储并作为环境变量提供给边缘函数的秘密。
通过 CLI 进行秘密管理对于以下方面非常有用:
- 设置特定于环境的配置
- 安全管理敏感凭据
秘密可以单独设置,也可以从 .env 文件加载,以方便起见。
子命令
supabase secrets set
为链接的 Supabase 项目设置一个或多个秘密。
用法
1supabase secrets set <NAME=VALUE> ... [flags]标志
- --env-file <string>可选
从 .env 文件读取秘密。
- --project-ref <string>可选
Supabase 项目的项目参考。
supabase secrets list
列出链接项目中的所有秘密。
用法
1supabase secrets list标志
- --project-ref <string>可选
Supabase 项目的项目参考。
supabase secrets unset
从链接的 Supabase 项目中取消设置一个或多个秘密。
用法
1supabase secrets unset [NAME] ...标志
- --project-ref <string>可选
Supabase 项目的项目参考。
supabase storage
supabase storage ls
用法
1supabase storage ls [path] [flags]标志
- -r, --recursive可选
递归列出目录。
- --experimental必需
启用实验性功能
- --linked可选
连接到链接项目的存储 API。
- --local可选
连接到本地数据库的存储 API。
supabase storage cp
用法
1supabase 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
用法
1supabase storage mv <src> <dst> [flags]标志
- -r, --recursive可选
递归移动目录。
- --experimental必需
启用实验性功能
- --linked可选
连接到链接项目的存储 API。
- --local可选
连接到本地数据库的存储 API。
supabase storage rm
用法
1supabase storage rm <file> ... [flags]标志
- -r, --recursive可选
递归删除目录。
- --experimental必需
启用实验性功能
- --linked可选
连接到链接项目的存储 API。
- --local可选
连接到本地数据库的存储 API。
supabase sso
supabase sso add
添加和配置到您的 Supabase 项目的 SSO 身份提供者的新连接。
用法
1supabase 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 项目的项目参考。
1supabase sso add \2 --project-ref abcdefgijklmnopqrst \3 --type saml \4 --metadata-url 'https://...' \5 --domains company.com响应
1Information about the added identity provider. You can use2company.com as the domain name on the frontend side to initiate a SSO3request to the identity provider.supabase sso list
列出您的 Supabase 项目的所有 SSO 身份提供者连接。
用法
1supabase sso list标志
- --project-ref <string>可选
Supabase 项目的项目参考。
supabase sso show
提供有关已建立的身份提供者连接的信息。您可以使用 --metadata 获取存储在项目配置中的原始 SAML 2.0 元数据 XML 文档。
用法
1supabase sso show <provider-id> [flags]标志
- --metadata可选
仅显示 SAML 2.0 XML 元数据
- --project-ref <string>可选
Supabase 项目的项目参考。
1supabase sso show 6df4d73f-bf21-405f-a084-b11adf19fea5 \2 --project-ref abcdefghijklmnopqrst响应
1Information about the identity provider in pretty output.supabase sso info
返回项目注册 SAML 2.0 兼容身份提供者所需的所有重要 SSO 信息。
用法
1supabase sso info标志
- --project-ref <string>可选
Supabase 项目的项目参考。
1supabase sso info --project-ref abcdefghijklmnopqrst响应
1Information about your project's SAML 2.0 configuration.supabase sso update
更新已添加的 SSO 身份提供者的配置设置。
用法
1supabase 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 项目的项目参考。
1supabase sso update 6df4d73f-bf21-405f-a084-b11adf19fea5 \2 --project-ref abcdefghijklmnopqrst \3 --domains new-company.com,new-company.net响应
1Information about the updated provider.supabase sso remove
删除与已添加的 SSO 身份提供者的连接。删除提供者将阻止现有用户登录。请谨慎使用此命令。
用法
1supabase sso remove <provider-id>标志
- --project-ref <string>可选
Supabase 项目的项目参考。
1supabase sso remove 6df4d73f-bf21-405f-a084-b11adf19fea5 \2 --project-ref abcdefghijklmnopqrst响应
1Information about the removed identity provider. It's a good idea to2save this in case you need it later on.supabase domains
管理 Supabase 项目的自定义域名。
自定义域名和个性化子域名不能同时使用。
子命令
supabase domains activate
激活项目的自定义主机名配置。
这将重新配置您的 Supabase 项目以响应自定义主机名上的请求。
自定义主机名激活后,您的项目第三方身份验证提供程序将不再在 Supabase 提供的子域上运行。请参阅我们文档中的准备激活您的域部分,了解您需要遵循的步骤。
用法
1supabase domains activate标志
- --include-raw-output可选
包括原始输出(对调试有用)。
- --project-ref <string>可选
Supabase 项目的项目参考。
supabase domains create
为您的 Supabase 项目创建一个自定义主机名。
期望您的自定义主机名具有指向您的 Supabase 项目子域的 CNAME 记录。
用法
1supabase domains create [flags]标志
- --custom-hostname <string>可选
用于您的 Supabase 项目的自定义主机名。
- --include-raw-output可选
包括原始输出(对调试有用)。
- --project-ref <string>可选
Supabase 项目的项目参考。
supabase domains get
检索您的项目在 Supabase 平台中存储的自定义主机名配置。
用法
1supabase domains get标志
- --include-raw-output可选
包括原始输出(对调试有用)。
- --project-ref <string>可选
Supabase 项目的项目参考。
supabase domains reverify
用法
1supabase domains reverify标志
- --include-raw-output可选
包括原始输出(对调试有用)。
- --project-ref <string>可选
Supabase 项目的项目参考。
supabase domains delete
用法
1supabase domains delete标志
- --include-raw-output可选
包括原始输出(对调试有用)。
- --project-ref <string>可选
Supabase 项目的项目参考。
supabase vanity-subdomains
管理 Supabase 项目的个性化子域名。
个性化子域名和自定义域名的使用是互斥的。
子命令
supabase vanity-subdomains activate
为您的 Supabase 项目激活个性化子域名。
这将重新配置您的 Supabase 项目以响应您的个性化子域名上的请求。个性化子域名激活后,您的项目的身份验证服务将不再在 {project-ref}.{supabase-domain} 主机名上运行。
用法
1supabase vanity-subdomains activate [flags]标志
- --desired-subdomain <string>可选
您希望用于您的 Supabase 项目的个性化子域名。
- --experimental必需
启用实验性功能
- --project-ref <string>可选
Supabase 项目的项目参考。
supabase vanity-subdomains get
用法
1supabase vanity-subdomains get标志
- --experimental必需
启用实验性功能
- --project-ref <string>可选
Supabase 项目的项目参考。
supabase vanity-subdomains check-availability
用法
1supabase vanity-subdomains check-availability [flags]标志
- --desired-subdomain <string>可选
您希望用于您的 Supabase 项目的个性化子域名。
- --experimental必需
启用实验性功能
- --project-ref <string>可选
Supabase 项目的项目参考。
supabase vanity-subdomains delete
删除项目的个性化子域名,并恢复使用项目参考进行路由。
用法
1supabase vanity-subdomains delete标志
- --experimental必需
启用实验性功能
- --project-ref <string>可选
Supabase 项目的项目参考。
supabase network-bans
网络禁令是指 IP 地址如果其流量模式看起来具有滥用性(例如多次身份验证失败)则会被暂时阻止。
子命令可帮助您查看当前的禁令,并根据需要解除 IP 阻止。
子命令
supabase network-bans get
用法
1supabase network-bans get标志
- --experimental必需
启用实验性功能
- --project-ref <string>可选
Supabase 项目的项目参考。
supabase network-bans remove
用法
1supabase network-bans remove [flags]标志
- --db-unban-ip <strings>可选
允许数据库连接的 IP。
- --experimental必需
启用实验性功能
- --project-ref <string>可选
Supabase 项目的项目参考。
supabase network-restrictions
supabase network-restrictions get
用法
1supabase network-restrictions get标志
- --experimental必需
启用实验性功能
- --project-ref <string>可选
Supabase 项目的项目参考。
supabase network-restrictions update
用法
1supabase 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
用法
1supabase ssl-enforcement get标志
- --experimental必需
启用实验性功能
- --project-ref <string>可选
Supabase 项目的项目参考。
supabase ssl-enforcement update
用法
1supabase 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
用法
1supabase postgres-config get标志
- --experimental必需
启用实验性功能
- --project-ref <string>可选
Supabase 项目的项目参考。
supabase postgres-config update
覆盖默认的 Postgres 配置可能导致不稳定的数据库行为。自定义配置还会覆盖根据使用的计算附加组件生成的优化。
用法
1supabase postgres-config update [flags]标志
- --config <strings>可选
配置覆盖,指定为“key=value”对
- --no-restart可选
更新配置后不重启数据库。
- --replace-existing-overrides可选
如果为 true,则用提供的覆盖替换所有现有覆盖。如果为 false(默认),则将现有覆盖与提供的覆盖合并。
- --experimental必需
启用实验性功能
- --project-ref <string>可选
Supabase 项目的项目参考。
supabase postgres-config delete
删除特定的配置覆盖,将它们恢复为默认值。
用法
1supabase postgres-config delete [flags]标志
- --config <strings>可选
要删除的配置键(逗号分隔)
- --no-restart可选
删除配置后不重启数据库。
- --experimental必需
启用实验性功能
- --project-ref <string>可选
Supabase 项目的项目参考。
supabase snippets
supabase snippets list
列出链接项目的所有 SQL 片段。
用法
1supabase snippets list标志
- --project-ref <string>可选
Supabase 项目的项目参考。
supabase snippets download
下载指定 SQL 片段的内容。
用法
1supabase snippets download <snippet-id>标志
- --project-ref <string>可选
Supabase 项目的项目参考。
supabase services
用法
1supabase servicessupabase 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 才能使此设置生效。
用法
1supabase completion zsh [flags]标志
- --no-descriptions可选
禁用补全描述
supabase completion powershell
为 powershell 生成自动补全脚本。
在当前 shell 会话中加载补全
supabase completion powershell | Out-String | Invoke-Expression
要为每个新会话加载补全,请将上述命令的输出添加到您的 powershell 配置文件中。
用法
1supabase completion powershell [flags]标志
- --no-descriptions可选
禁用补全描述
supabase completion fish
为 fish shell 生成自动补全脚本。
在当前 shell 会话中加载补全
supabase completion fish | source
要为每个新会话加载补全,请执行一次
supabase completion fish > ~/.config/fish/completions/supabase.fish
您需要启动新的 shell 才能使此设置生效。
用法
1supabase 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 才能使此设置生效。
用法
1supabase completion bash标志
- --no-descriptions可选
禁用补全描述