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
- 社区支持的 Fig 自动补全规范 用于 macOS 终端
全局标志
Supabase CLI 为每个命令都支持全局标志。
Flags
为任何CLI错误创建支持工单
将调试日志输出到标准错误
使用指定的解析器查询域名
启用实验性功能
supabase 帮助
使用指定的 docker 网络而非自动生成的网络
状态变量的输出格式
Supabase 项目目录路径
supabase 初始化
Usage
1supabase bootstrap [template] [flags]
Flags
- -p, --password <字符串>Optional
远程 Postgres 数据库的密码。
supabase 初始化
初始化Supabase本地开发的配置。
将在当前工作目录下创建supabase/config.toml
文件。该配置针对每个本地项目是特定的。
您可以通过指定
SUPABASE_WORKDIR
环境变量或--workdir
标志来覆盖目录路径。
除了config.toml
外,supabase
目录还可能包含其他Supabase对象,如migrations
(迁移)、functions
(函数)、tests
(测试)等。
Usage
1supabase init [flags]
Flags
- --forceOptional
覆盖现有的supabase/config.toml文件
- --use-orioledbOptional
为Postgres使用OrioleDB存储引擎。
- --with-intellij-settingsOptional
为Deno生成IntelliJ IDEA设置。
- --with-vscode-settingsOptional
生成适用于 Deno 的 VS Code 设置。
1supabase 初始化
Response
1Finished supabase init.
supabase 登录
通过使用您的个人访问令牌登录,将Supabase CLI连接到您的Supabase账户。
您的访问令牌安全地存储在本地凭证存储中。如果本地凭证存储不可用,它将被写入到~/.supabase/access-token
的纯文本文件中。
如果不希望出现此行为,例如在CI环境中,您可以通过在其他命令中指定
SUPABASE_ACCESS_TOKEN
环境变量来跳过登录。
Supabase CLI使用存储的令牌访问用于项目、函数、密钥等的管理API。
Usage
1supabase login [flags]
Flags
- --name <字符串>Optional
将用于在您的设置中存储令牌的名称
- --no-browserOptional
不要自动打开浏览器
- --token <字符串>Optional
使用提供的令牌而非自动登录流程
1supabase 登录
Response
123You can generate an access token from https://supabase.com/dashboard/account/tokensEnter your access token: sbp_****************************************Finished supabase login.
supabase 链接
将您的本地开发项目与托管的Supabase项目关联。
PostgREST配置将从Supabase平台获取,并与您的本地配置文件进行验证。
如果提供密码,可选择验证数据库设置。您的数据库密码将保存在本地凭据存储中(如可用)。
若您不希望被提示输入数据库密码(例如在CI环境中),可以通过
SUPABASE_DB_PASSWORD
环境变量显式指定。
诸如db dump
、db push
和db pull
等命令需要先关联项目。
Usage
1supabase link [flags]
Flags
- -p, --password <字符串>Optional
远程Postgres数据库的密码。
- --project-ref <字符串>Optional
Supabase项目的项目引用。
1supabase link --project-ref ********************
Response
12Enter your database password (or leave blank to skip): ********Finished supabase link.
supabase 启动
启动Supabase本地开发环境。
需要先在当前工作目录通过运行supabase init
命令生成supabase/config.toml
配置文件。
默认会启动所有服务容器。可通过-x
参数排除不需要的容器。如需排除多个容器,可以传入逗号分隔的字符串(如-x gotrue,imgproxy
),或多次指定-x
参数。
建议至少配备7GB内存以启动所有服务。
系统会自动添加健康检查来验证已启动的容器。使用--ignore-health-check
参数可忽略这些错误。
Usage
1supabase start [flags]
Flags
- -x, --exclude <strings>Optional
指定不启动的容器名称。[gotrue,realtime,storage-api,imgproxy,kong,mailpit,postgrest,postgres-meta,studio,edge-runtime,logflare,vector,supavisor]
- --ignore-health-checkOptional
忽略不健康的服务并返回退出码0
1supabase 启动
Response
1234Creating custom roles supabase/roles.sql...Applying migration 20220810154536_employee.sql...Seeding data supabase/seed.sql...Started supabase local development setup.
supabase 停止
停止Supabase本地开发堆栈。
需在当前工作目录中通过运行supabase init
命令创建supabase/config.toml
文件。
所有Docker资源在重启时都会保留。使用--no-backup
标志可在重启间重置本地开发数据。
使用--all
标志可停止机器上所有本地Supabase项目实例。与--no-backup
同时使用需谨慎,这将删除所有supabase本地项目数据。
Usage
1supabase stop [flags]
Flags
- --allOptional
停止本机上所有项目中的本地Supabase实例。
- --no-backupOptional
停止后删除所有数据卷。
- --project-id <字符串>Optional
要停止的本地项目ID。
1supabase 停止
Response
12Stopped supabase local development setup.Local data are backed up to docker volume.
supabase 状态
显示Supabase本地开发堆栈的状态。
需要先通过运行supabase start
或supabase db start
命令启动本地开发堆栈。
通过指定-o env
标志,可以导出用于初始化supabase-js的连接参数。支持的参数包括JWT_SECRET
、ANON_KEY
和SERVICE_ROLE_KEY
。
Usage
1supabase status [flags]
Flags
- --override-name <字符串>Optional
覆盖特定变量名称。
1supabase 状态
Response
12345678910supabase local development setup is running. API URL: http://127.0.0.1:54321 GraphQL URL: http://127.0.0.1:54321/graphql/v1 DB URL: postgresql://postgres:postgres@127.0.0.1:54322/postgres Studio URL: http://127.0.0.1:54323 Inbucket URL: http://127.0.0.1:54324 JWT secret: super-secret-jwt-token-with-at-least-32-characters-long anon key: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJzdXBhYmFzZS1kZW1vIiwicm9sZSI6ImFub24iLCJleHAiOjE5ODM4MTI5OTZ9.CRXP1A7WOeoJeXxjNni43kdQwgnWNReilDMblYTn_I0service_role key: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJzdXBhYmFzZS1kZW1vIiwicm9sZSI6InNlcnZpY2Vfcm9sZSIsImV4cCI6MTk4MzgxMjk5Nn0.EGIM96RAZx35lJzdJsyH-qQwv8Hdp7fsn3W0YpN81IU
supabase 测试
Subcommands
supabase 测试数据库
对本地数据库执行pgTAP测试。
要求通过运行supabase start
启动本地开发堆栈。
在容器中运行pg_prove
,并将单元测试文件从supabase/tests
目录挂载到容器中。测试文件后缀可以是.sql
或.pg
。
由于每个测试都在自己的事务中运行,无论成功或失败,都会单独回滚。
Usage
1supabase test db [path] ... [flags]
Flags
- --db-url <字符串>Optional
测试由连接字符串指定的数据库(必须进行百分号编码)。
- --linkedOptional
在链接项目上运行 pgTAP 测试。
- --localOptional
在本地数据库上运行 pgTAP 测试。
1supabase 测试数据库
Response
12345/tmp/supabase/tests/nested/order_test.pg .. ok/tmp/supabase/tests/pet_test.sql .......... okAll tests successful.Files=2, Tests=2, 6 wallclock secs ( 0.03 usr 0.01 sys + 0.05 cusr 0.02 csys = 0.11 CPU)Result: PASS
supabase 测试新建
Usage
1supabase test new <name> [flags]
Flags
- -t, --template <[ pgtap ]>Optional
要生成的模板框架。
supabase 生成
基于您的 Postgres 数据库模式自动生成类型定义。
该命令会连接到您的数据库(本地或远程),并生成与数据库表、视图和存储过程匹配的类型化定义。默认生成 TypeScript 定义,但也支持 Go 和 Swift。
生成的类型使您在代码中操作数据库时获得类型安全性和自动补全功能,有助于防止运行时错误并提升开发体验。
这些类型会遵循数据库模式中定义的关系、约束和自定义类型。
Subcommands
supabase 生成密钥
Usage
1supabase gen keys [flags]
Flags
- --override-name <字符串>Optional
覆盖特定变量名称。
- --project-ref <字符串>Optional
Supabase项目的项目引用。
- --experimentalRequired
启用实验性功能
supabase 生成类型
Usage
1supabase gen types [flags]
Flags
- --db-url <字符串>Optional
从数据库 URL 生成类型。
- --lang <[ typescript | go | swift ]>Optional
生成类型的输出语言。
- --linkedOptional
从链接项目生成类型。
- --localOptional
从本地开发数据库生成类型。
- --postgrest-v9-compatOptional
生成与PostgREST v9及以下版本兼容的类型。仅与--db-url选项一起使用。
- --project-id <字符串>Optional
根据项目ID生成类型。
- -s, --schema <字符串列表>Optional
逗号分隔的要包含的模式列表。
- --swift-access-control <[ internal | public ]>Optional
Swift 生成类型的访问控制。
supabase 数据库
supabase db pull
从远程数据库拉取架构变更。将在supabase/migrations
目录下创建新的迁移文件。
要求通过运行supabase link
将本地项目链接到远程数据库。对于自托管数据库,可以使用--db-url
参数传入连接配置。
可选择在迁移历史表中插入新行以反映远程数据库当前状态。
若迁移历史表中无条目,将使用pg_dump
捕获您创建的所有远程架构内容。否则该命令仅会比对远程数据库的架构差异,类似于运行db diff --linked
。
Usage
1supabase db pull [migration name] [flags]
Flags
- --db-url <字符串>Optional
从连接字符串指定的数据库拉取数据(必须进行百分号编码)。
- --linkedOptional
从关联项目拉取数据。
- --localOptional
从本地数据库拉取数据。
- -p, --password <字符串>Optional
远程Postgres数据库的密码。
- -s, --schema <字符串>Optional
包含的模式列表,以逗号分隔。
1supabase db pull
Response
123456Connecting to remote database...Schema written to supabase/migrations/20240414044403_remote_schema.sqlUpdate remote migration history table? [Y/n]Repaired migration history: [20240414044403] => appliedFinished supabase db pull.The auth and storage schemas are excluded. Run supabase db pull --schema auth,storage again to diff them.
supabase 数据库推送
将所有本地迁移推送至远程数据库。
需先通过运行supabase link
命令将本地项目与远程数据库关联。对于自托管数据库,可使用--db-url
参数传入连接配置。
首次运行此命令时,将在supabase_migrations.schema_migrations
下创建迁移历史表。成功应用迁移后,会以时间戳作为唯一ID向迁移历史表插入新记录。后续推送将自动跳过已应用的迁移。
如需修改迁移历史表(例如删除现有条目或无需实际运行迁移就插入新条目),请使用migration repair
命令。
使用--dry-run
参数可在应用前预览变更列表。
Usage
1supabase db push [flags]
Flags
- --db-url <字符串>Optional
推送到由连接字符串指定的数据库(必须进行百分号编码)。
- --dry-runOptional
打印将会应用的迁移,但实际上不执行这些迁移。
- --include-allOptional
包含远程历史表中未找到的所有迁移。
- --include-rolesOptional
包含来自supabase/roles.sql的自定义角色。
- --include-seedOptional
包含来自配置的种子数据。
- --linkedOptional
推送到链接的项目。
- --localOptional
推送至本地数据库。
- -p, --password <string>Optional
远程Postgres数据库的密码。
1supabase 数据库推送
Response
1Linked project is up to date.
supabase 数据库重置
将本地数据库重置为初始状态。
需要先通过运行supabase start
启动本地开发环境。
会重新创建本地Postgres容器,并应用supabase/migrations
目录中的所有本地迁移。如果supabase/seed.sql
中定义了测试数据,将在迁移完成后进行播种。本地开发期间所做的任何其他数据或模式更改都将被丢弃。
当使用--linked
或--db-url
标志运行db reset时,会执行SQL脚本来识别并删除远程数据库中所有用户创建的实体。由于Postgres角色是集群级实体,通过仪表板或supabase/roles.sql
创建的任何自定义角色不会被远程重置删除。
Usage
1supabase db reset [flags]
Flags
- --db-url <字符串>Optional
重置由连接字符串指定的数据库(必须进行百分号编码)。
- --linkedOptional
重置具有本地迁移的链接项目。
- --localOptional
使用本地迁移重置本地数据库。
- --no-seedOptional
重置后跳过运行种子脚本。
- --version <字符串>Optional
重置至指定版本。
1supabase 数据库重置
Response
12345Resetting database...Initializing schema...Applying migration 20220810154537_create_employees_table.sql...Seeding data supabase/seed.sql...Finished supabase db reset on branch main.
supabase db dump
从远程数据库转储内容。
需要通过运行supabase link
将本地项目链接到远程数据库。对于自托管数据库,可以使用--db-url
标志传入连接参数。
在容器中运行pg_dump
,并带有额外的标志以排除Supabase管理的模式。被忽略的模式包括auth、storage以及由扩展创建的模式。
默认转储不包含任何数据或自定义角色。要明确转储这些内容,请指定--data-only
或--role-only
标志。
Usage
1supabase db dump [flags]
Flags
- --data-onlyOptional
仅转储数据记录。
- --db-url <字符串>Optional
从连接字符串指定的数据库转储(必须进行百分号编码)。
- --dry-runOptional
打印将被执行的pg_dump脚本。
- -x, --exclude <字符串>Optional
从仅数据转储中排除的模式.表列表。
- -f, --file <字符串>Optional
保存转储内容的文件路径。
- --keep-commentsOptional
保留pg_dump输出中的注释行。
- --linkedOptional
从链接的项目中导出数据。
- --localOptional
从本地数据库导出数据。
- -p, --password <字符串>Optional
远程Postgres数据库的密码。
- --role-onlyOptional
仅导出集群角色。
- -s, --schema <字符串>Optional
要包含的模式列表,以逗号分隔。
- --use-copyOptional
使用复制语句代替插入语句。
1supabase db dump -f supabase/schema.sql
Response
12Dumping schemas from remote database...Dumped schema to supabase/schema.sql.
supabase 数据库差异
比较对本地或远程数据库所做的模式变更。
与本地数据库比较时,需要本地开发堆栈正在运行。要与远程或自托管数据库比较,请分别指定--linked
或--db-url
标志。
在容器中运行djrobstep/migra来比较目标数据库与影子数据库之间的模式差异。影子数据库是通过在单独的容器中应用本地supabase/migrations
目录中的迁移创建的。默认情况下,输出会写入stdout。为了方便起见,您还可以通过传入-f
标志将模式差异保存为新的迁移文件。
默认情况下,会比较目标数据库中的所有模式。使用--schema public,extensions
标志可以将比较限制为模式的子集。
虽然diff命令能够捕获大多数模式变更,但在某些情况下已知会失败。目前,如果您的模式包含以下内容,可能会发生这种情况:
- 对发布的变更
- 对存储桶的变更
- 具有
security_invoker
属性的视图
Usage
1supabase db diff [flags]
Flags
- --db-url <字符串>Optional
与连接字符串指定的数据库进行差异比对(必须进行百分号编码)。
- -f, --file <字符串>Optional
将模式差异保存到新的迁移文件中。
- --linkedOptional
将本地迁移文件与链接项目进行差异对比。
- --localOptional
将本地迁移文件与本地数据库进行差异对比。
- -s, --schema <字符串>Optional
逗号分隔的待包含模式列表。
- --use-migraOptional
使用migra生成模式差异。
- --use-pg-schemaOptional
使用pg-schema-diff生成模式差异。
- --use-pgadminOptional
使用 pgAdmin 生成模式差异。
1supabase db diff -f my_table
Response
1234567Connecting to local database...Creating shadow database...Applying migration 20230425064254_remote_commit.sql...Diffing schemas: auth,extensions,public,storageFinished supabase db diff on branch main.No schema changes found
supabase 数据库检查
对本地数据库进行模式错误检查。
当针对本地数据库进行检查时,需要本地开发环境正在运行。若要对远程或自托管数据库进行检查,请分别指定--linked
或--db-url
标志。
在本地Postgres容器中运行plpgsql_check
扩展,检查所有模式中的错误。默认检查级别为warning
,可通过--level
标志提升至error级别。
若仅检查特定模式,请传入--schema
标志。
--fail-on
标志可用于控制命令何时以非零状态码退出。可选值包括:
none
(默认):无论检查结果如何,始终以零状态码退出。warning
:发现警告或错误时以非零状态码退出。error
:仅发现错误时以非零状态码退出。
该标志在CI/CD管道中特别有用,您可以根据特定检查条件使构建失败。
Usage
1supabase db lint [flags]
Flags
- --db-url <字符串>Optional
对连接字符串指定的数据库进行代码检查(必须进行百分号编码)。
- --fail-on <[ 无 | 警告 | 错误 ]>Optional
触发非零退出状态的错误级别。
- --level <[ 警告 | 错误 ]>Optional
要发出的错误级别。
- --linkedOptional
检查链接项目的模式错误。
- --localOptional
检查本地数据库的模式错误。
- -s, --schema <字符串>Optional
逗号分隔的要包含的模式列表。
1supabase 数据库检查
Response
123Linting schema: publicNo schema errors found
supabase db start
Usage
1supabase db start [flags]
Flags
- --from-backup <string>Optional
逻辑备份文件的路径。
supabase 迁移
supabase 新建迁移
在本地创建一个新的迁移文件。
如果当前workdir
中不存在supabase/migrations
目录,将会自动创建该目录。所有模式迁移文件都必须按照<时间戳>_<名称>.sql
的命名格式存放在此目录下。
其他命令(如db diff
)的输出可以通过标准输入管道传递给migration new <名称>
命令。
Usage
1supabase migration new <migration name>
1supabase migration new schema_test
Response
1Created new migration at supabase/migrations/20230306095710_schema_test.sql.
supabase 迁移列表
列出本地和远程数据库中的迁移历史。
需要先通过运行supabase link
命令将本地项目链接到远程数据库。对于自托管数据库,可以使用--db-url
标志传入连接参数。
注意URL字符串必须按照RFC 3986规范进行编码。
本地迁移存储在supabase/migrations
目录中,而远程迁移记录在supabase_migrations.schema_migrations
表中。仅通过时间戳比较来识别差异。
当本地与远程迁移历史存在差异时,可以使用migration repair
命令进行修复。
Usage
1supabase migration list [flags]
Flags
- --db-url <字符串>Optional
列出由连接字符串指定的数据库迁移(必须进行百分比编码)。
- --linkedOptional
列出应用于链接项目的迁移。
- --localOptional
列出应用于本地数据库的迁移。
- -p, --password <字符串>Optional
远程Postgres数据库的密码。
1supabase 迁移列表
Response
12345LOCAL │ REMOTE │ TIME (UTC)─────────────────┼────────────────┼────────────────────── │ 20230103054303 │ 2023-01-03 05:43:03 │ 20230103093141 │ 2023-01-03 09:31:41 20230222032233 │ │ 2023-02-22 03:22:33
supabase迁移获取
Usage
1supabase migration fetch [flags]
Flags
- --db-url <字符串>Optional
从连接字符串指定的数据库中获取迁移(必须进行百分号编码)。
- --linkedOptional
从关联项目中获取迁移历史记录。
- --localOptional
从本地数据库获取迁移历史记录。
supabase migration repair
修复远程迁移历史表。
要求通过运行supabase link
将本地项目链接到远程数据库。
如果本地和远程迁移历史不同步,您可以通过将特定迁移标记为--status applied
或--status reverted
来修复远程历史。标记为reverted
将从迁移历史表中删除现有记录,而标记为applied
将插入新记录。
例如,您的迁移历史可能如下表所示,本地或远程缺少条目。
$ supabase migration list
本地 │ 远程 │ 时间 (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
本地 │ 远程 │ 时间 (UTC)
─────────────────┼────────────────┼──────────────────────
│ 20230103054303 │ 2023-01-03 05:43:03
然后将远程迁移20230103054303
标记为已恢复。
$ supabase migration repair 20230103054303 --status reverted
正在连接到远程数据库...
已修复迁移历史: [20220810154537] => 已恢复
完成 supabase migration repair。
$ supabase migration list
本地 │ 远程 │ 时间 (UTC)
─────────────────┼────────────────┼──────────────────────
现在您可以再次运行db pull
将远程架构转储为本地迁移文件。
$ supabase db pull
正在连接到远程数据库...
架构已写入 supabase/migrations/20240414044403_remote_schema.sql
更新远程迁移历史表? [Y/n]
已修复迁移历史: [20240414044403] => 已应用
完成 supabase db pull。
$ supabase migration list
本地 │ 远程 │ 时间 (UTC)
─────────────────┼────────────────┼──────────────────────
20240414044403 │ 20240414044403 │ 2024-04-14 04:44:03
Usage
1supabase migration repair [version] ... [flags]
Flags
- --db-url <字符串>Optional
修复由连接字符串指定的数据库迁移(必须进行百分号编码)。
- --linkedOptional
修复链接项目的迁移历史。
- --localOptional
修复本地数据库的迁移历史。
- -p, --password <字符串>Optional
远程Postgres数据库的密码。
- --status <[ applied | reverted ]>Required
要更新的版本状态。
1supabase 迁移修复 20230103054303 --status 已回滚
Response
1Repaired migration history: 20230103054303 => reverted
supabase 迁移压缩
将本地模式迁移压缩为单个迁移文件。
压缩后的迁移相当于在应用现有迁移文件后,对本地数据库进行仅模式转储。这在您希望从迁移历史中移除对同一模式的重复修改时特别有用。
然而,一个限制是数据操作语句(如插入、更新或删除)会从压缩迁移中省略。您需要在新迁移文件中手动添加这些内容。这包括定时任务、存储桶和金库中的任何加密密钥。
默认情况下,最新的 <时间戳>_<名称>.sql
文件将被更新以包含压缩后的迁移。您可以使用 --version <时间戳>
标志覆盖目标版本。
如果您的 supabase/migrations
目录为空,运行 supabase squash
将不会执行任何操作。
Usage
1supabase migration squash [flags]
Flags
- --db-url <字符串>Optional
压缩由连接字符串指定的数据库迁移(必须进行百分号编码)。
- --linkedOptional
压缩关联项目的迁移历史记录
- --localOptional
压缩本地数据库的迁移历史记录
- -p, --password <字符串>Optional
远程Postgres数据库的密码
- --version <string>Optional
压缩至指定版本。
supabase 迁移升级
Usage
1supabase migration up [flags]
Flags
- --db-url <字符串>Optional
将迁移应用到由连接字符串指定的数据库(必须进行百分号编码)。
- --include-allOptional
包含远程历史表中未找到的所有迁移。
- --linkedOptional
将待处理的迁移应用到链接的项目。
- --localOptional
将待处理的迁移应用到本地数据库。
supabase 种子数据
Subcommands
supabase 种子存储桶
Usage
1supabase seed buckets
Flags
- --linkedOptional
为关联项目填充种子数据。
- --localOptional
初始化本地数据库。
supabase inspect db
Subcommands
- supabase inspect db bloat
- supabase inspect db blocking
- supabase inspect db cache-hit
- supabase inspect db calls
- supabase 检查数据库 索引大小
- supabase inspect db index-usage
- supabase inspect db locks
- supabase inspect db long-running-queries
- supabase inspect db outliers
- supabase inspect db replication-slots
- supabase inspect db role-configs
- supabase inspect db role-connections
- supabase inspect db seq-scans
- supabase inspect db table-index-sizes
- supabase inspect db table-record-counts
- supabase inspect db table-sizes
- supabase inspect db total-index-size
- supabase inspect db total-table-sizes
- supabase inspect db unused-indexes
- supabase inspect db vacuum-stats
supabase inspect db calls
此命令类似于 supabase inspect db outliers
命令,但按语句调用次数排序。
您可以使用此信息查看哪些查询被调用最频繁,这些查询可能是优化的潜在候选对象。
查询语句 │ 总执行时间 │ 占总执行时间的比例 │ 调用次数 │ 同步IO时间
─────────────────────────────────────────────────┼─────────────┼────────────────────┼──────────┼──────────────
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
Usage
1supabase inspect db calls
Flags
- --db-url <string>Optional
检查由连接字符串指定的数据库(必须进行百分号编码)。
- --linkedOptional
检查链接的项目。
- --localOptional
检查本地数据库。
supabase inspect db long-running-queries
此命令显示当前运行时间超过5分钟的查询,按持续时间降序排列。长时间运行的查询可能导致多种问题,例如阻止DDL语句完成或使vacuum操作无法更新relfrozenxid
。
PID │ 持续时间 │ 查询语句
───────┼─────────────────┼───────────────────────────────────────────────────────────────────────────────────────
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
Usage
1supabase inspect db long-running-queries
Flags
- --db-url <string>Optional
检查由连接字符串指定的数据库(必须进行百分号编码)。
- --linkedOptional
检查链接的项目。
- --localOptional
检查本地数据库。
supabase inspect db outliers
此命令显示从pg_stat_statements
获取的语句,按聚合执行时间排序。包括语句本身、该语句的总执行时间、该语句占所有语句总执行时间的比例、该语句的调用次数,以及该语句在同步I/O(文件系统读写)上花费的时间。
通常,高效查询的调用次数与总执行时间之比应适当,且尽可能减少I/O时间。对于总执行时间长但调用次数少的查询应进行调查以提升性能。同步I/O占用执行时间比例高的查询也应进行调查。
查询语句 │ 执行时间 │ 执行时间占比 │ 调用次数 │ 同步I/O时间
─────────────────────────────────────────┼──────────────────┼─────────────────────────┼──────────────┼───────────────
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
Usage
1supabase inspect db outliers
Flags
- --db-url <字符串>Optional
检查由连接字符串指定的数据库(必须进行百分号编码)。
- --linkedOptional
检查链接的项目。
- --localOptional
检查本地数据库。
supabase inspect db blocking
此命令显示当前持有锁并造成阻塞的语句,以及被阻塞的语句。可与inspect db locks
命令配合使用,以确定需要终止哪些语句来解决锁争用问题。
被阻塞PID │ 阻塞语句 │ 阻塞时长 │ 阻塞PID │ 被阻塞语句 │ 被阻塞时长
──────────────┼──────────────────────────────┼───────────────────┼──────────────┼────────────────────────────────────────────────────────────────────────────────────────┼───────────────────
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
Usage
1supabase inspect db blocking
Flags
- --db-url <字符串>Optional
检查由连接字符串指定的数据库(必须进行百分号编码)。
- --linkedOptional
检查链接的项目。
- --localOptional
检查本地数据库。
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
Usage
1supabase inspect db locks
Flags
- --db-url <字符串>Optional
检查由连接字符串指定的数据库(必须进行百分号编码)。
- --linkedOptional
检查链接的项目。
- --localOptional
检查本地数据库。
supabase inspect db total-index-size
此命令显示数据库中所有索引的总大小。计算方法是将页数(由relpages
报告)乘以页面大小(8192字节)。
大小
─────────
12 MB
Usage
1supabase inspect db total-index-size
Flags
- --db-url <字符串>Optional
检查由连接字符串指定的数据库(必须进行百分号编码)。
- --linkedOptional
检查链接的项目。
- --localOptional
检查本地数据库。
supabase 检查数据库 索引大小
此命令显示数据库中每个索引的大小。计算方式是将页数(由relpages
报告)乘以页面大小(8192字节)。
名称 │ 大小
──────────────────────────────┼─────────────
user_events_index │ 2082 MB
job_run_details_pkey │ 3856 kB
schema_migrations_pkey │ 16 kB
refresh_tokens_token_unique │ 8192字节
users_instance_id_idx │ 0字节
buckets_pkey │ 0字节
Usage
1supabase inspect db index-sizes
Flags
- --db-url <字符串>Optional
检查由连接字符串指定的数据库(必须进行百分号编码)。
- --linkedOptional
检查链接的项目。
- --localOptional
检查本地数据库。
supabase inspect db index-usage
该命令提供索引效率信息,以索引扫描占总扫描次数的百分比表示。低百分比可能表明索引不足或索引了错误数据。
表名 │ 索引使用百分比 │ 表行数
────────────────────┼────────────────────────────┼───────────────
user_events │ 99 │ 4225318
user_feed │ 99 │ 3581573
unindexed_table │ 0 │ 322911
job │ 100 │ 33242
schema_migrations │ 97 │ 0
migrations │ 数据不足 │ 0
Usage
1supabase inspect db index-usage
Flags
- --db-url <字符串>Optional
检查由连接字符串指定的数据库(必须进行百分号编码)。
- --linkedOptional
检查链接的项目。
- --localOptional
检查本地数据库。
supabase inspect db unused-indexes
此命令显示扫描次数少于50次且大小超过5页的索引,并按相对于索引扫描次数的大小排序。该命令通常用于发现未使用的索引。索引会影响写入性能,如果它们占用内存空间,也会影响读取性能,因此删除不需要或未使用的索引是一个好主意。
表名 │ 索引名 │ 索引大小 │ 索引扫描次数
─────────────────────┼────────────────────────────────────────────┼────────────┼──────────────
public.users │ user_id_created_at_idx │ 97 MB │ 0
Usage
1supabase inspect db unused-indexes
Flags
- --db-url <字符串>Optional
检查由连接字符串指定的数据库(必须进行百分号编码)。
- --linkedOptional
检查链接的项目。
- --localOptional
检查本地数据库。
supabase inspect db total-table-sizes
此命令显示数据库中每个表的总大小。它是每个表的pg_table_size()
和pg_indexes_size()
返回值之和。不包括pg_catalog
和information_schema
中的系统表。
名称 │ 大小
───────────────────────────────────┼─────────────
job_run_details │ 395 MB
slack_msgs │ 648 kB
emails │ 640 kB
Usage
1supabase inspect db total-table-sizes
Flags
- --db-url <字符串>Optional
检查由连接字符串指定的数据库(必须进行百分号编码)。
- --linkedOptional
检查链接的项目。
- --localOptional
检查本地数据库。
supabase inspect db table-sizes
此命令显示数据库中每个表的大小。它是通过使用系统管理函数pg_table_size()
计算的,该函数包括主数据分支、空闲空间映射、可见性映射和TOAST数据的大小。不包括表的索引大小。
名称 │ 大小
───────────────────────────────────┼─────────────
job_run_details │ 385 MB
emails │ 584 kB
job │ 40 kB
sessions │ 0 字节
prod_resource_notifications_meta │ 0 字节
Usage
1supabase inspect db table-sizes
Flags
- --db-url <字符串>Optional
检查由连接字符串指定的数据库(必须进行百分号编码)。
- --linkedOptional
检查链接的项目。
- --localOptional
检查本地数据库。
supabase inspect db table-index-sizes
此命令显示每个表索引的总大小。它是通过使用系统管理函数pg_indexes_size()
计算的。
表名 │ 索引大小
───────────────────────────────────┼─────────────
job_run_details │ 10104 kB
users │ 128 kB
job │ 32 kB
instances │ 8192 字节
http_request_queue │ 0 字节
Usage
1supabase inspect db table-index-sizes
Flags
- --db-url <字符串>Optional
检查由连接字符串指定的数据库(必须进行百分号编码)。
- --linkedOptional
检查链接的项目。
- --localOptional
检查本地数据库。
supabase inspect db cache-hit
该命令提供关于缓冲缓存效率的信息,以及您的查询必须访问磁盘而非从内存读取的频率。同时显示索引读取(index hit rate
)和表读取(table hit rate
)的信息。通常,缓存命中率低的数据库性能较差,因为从磁盘读取数据比从内存检索要慢。如果您的表命中率较低,这可能表明您的RAM不足,升级到具有更多内存的更大计算插件可能会有所帮助。如果您的索引命中率较低,这可能表明有添加更合适索引的空间。
命中率计算为从Postgres缓冲缓存获取的表或索引块数与从磁盘读取的缓存块和未缓存块之和的比率。
在较小的计算计划(免费、小型、中型)上,低于99%的比率可能表明存在问题。在较大的计划上,命中率可能较低,但性能将保持稳定,因为数据可能使用操作系统缓存而非Postgres缓冲缓存。
名称 │ 比率
─────────────────┼───────────
索引命中率 │ 0.996621
表命中率 │ 0.999341
Usage
1supabase inspect db cache-hit
Flags
- --db-url <string>Optional
检查由连接字符串指定的数据库(必须进行百分号编码)。
- --linkedOptional
检查链接的项目。
- --localOptional
检查本地数据库。
supabase inspect db table-record-counts
此命令显示每个表的预估行数,按预估数量降序排列。预估数量来源于n_live_tup
,该值由vacuum操作更新。由于n_live_tup
的填充方式,稀疏页与密集页可能导致预估数量与实际行数存在显著差异。
表名 │ 预估行数
─────────────┼──────────────────
logs │ 322943
emails │ 1103
job │ 1
migrations │ 0
Usage
1supabase inspect db table-record-counts
Flags
- --db-url <字符串>Optional
检查连接字符串指定的数据库(必须进行百分号编码)。
- --linkedOptional
检查链接的项目。
- --localOptional
检查本地数据库。
supabase inspect db seq-scans
此命令显示所有表记录的顺序扫描次数,按顺序扫描次数降序排列。顺序扫描次数非常高的表可能索引不足,值得调查从这些表读取的查询。
名称 │ 次数
───────────────────────────────────┼─────────
电子邮件 │ 182435
用户 │ 25063
作业运行详情 │ 60
架构迁移 │ 0
迁移记录 │ 0
Usage
1supabase inspect db seq-scans
Flags
- --db-url <字符串>Optional
检查由连接字符串指定的数据库(必须进行百分号编码)。
- --linkedOptional
检查链接的项目。
- --localOptional
检查本地数据库。
supabase inspect db replication-slots
此命令显示数据库中设置的逻辑复制槽信息。它会显示槽是否活跃、WAL发送进程状态('startup'、'catchup'、'streaming'、'backup'、'stopping')、复制客户端地址以及以GB为单位的复制延迟量。
该命令可用于检查复制延迟量是否尽可能低,复制延迟可能由网络延迟问题、磁盘I/O缓慢、长时间运行的事务或订阅者无法足够快地消费WAL引起。
名称 │ 活跃 │ 状态 │ 复制客户端地址 │ 复制延迟 GB
─────────────────────────────────────────────┼──────┼─────────┼────────────────┼───────────────
supabase_realtime_replication_slot │ 是 │ 不适用 │ 不适用 │ 0
datastream │ 是 │ 追赶中 │ 24.201.24.106 │ 45
Usage
1supabase inspect db replication-slots
Flags
- --db-url <字符串>Optional
检查由连接字符串指定的数据库(必须进行百分号编码)。
- --linkedOptional
检查链接的项目。
- --localOptional
检查本地数据库。
supabase inspect db role-connections
此命令显示每个数据库角色的活跃连接数,以便查看哪个特定角色可能消耗了超出预期的连接数。
这是Supabase特有的命令。您也可以在仪表板上查看此细分: https://app.supabase.com/project/_/database/roles
最大活跃连接数取决于您的实例大小。您可以手动覆盖允许的连接数,但不建议这样做。
角色名称 │ 活跃连接数
────────────────────────────┼───────────────────
authenticator │ 5
postgres │ 5
supabase_admin │ 1
pgbouncer │ 1
anon │ 0
authenticated │ 0
service_role │ 0
dashboard_user │ 0
supabase_auth_admin │ 0
supabase_storage_admin │ 0
supabase_functions_admin │ 0
pgsodium_keyholder │ 0
pg_read_all_data │ 0
pg_write_all_data │ 0
pg_monitor │ 0
活跃连接数 12/90
Usage
1supabase inspect db role-connections
Flags
- --db-url <字符串>Optional
检查由连接字符串指定的数据库(必须进行百分号编码)。
- --linkedOptional
检查链接的项目。
- --localOptional
检查本地数据库。
supabase inspect db bloat
此命令显示表的"膨胀"估算值 - 由于Postgres的MVCC机制,当数据被更新或删除时,会创建新行并将旧行标记为不可见的"死元组"。通常自动清理进程会异步清理这些死元组。但有时自动清理速度不够快,无法减少或防止表膨胀。高膨胀率会降低查询速度、导致过度IOPS并浪费数据库空间。
对于膨胀率高的表应进行调查,查看是否存在清理速度不足或其他问题。
类型 │ 模式名称 │ 对象名称 │ 膨胀率 │ 浪费空间
────────┼─────────────┼────────────────────────────┼───────┼─────────────
表 │ public │ very_bloated_table │ 41.0 │ 700 MB
表 │ public │ my_table │ 4.0 │ 76 MB
表 │ public │ happy_table │ 1.0 │ 1472 kB
索引 │ public │ happy_table::my_nice_index │ 0.7 │ 880 kB
Usage
1supabase inspect db bloat
Flags
- --db-url <字符串>Optional
检查由连接字符串指定的数据库(必须进行百分号编码)。
- --linkedOptional
检查链接的项目。
- --localOptional
检查本地数据库。
supabase inspect db vacuum-stats
此命令显示每个表的 vacuum 活动统计信息。由于Postgres的MVCC机制,当数据被更新或删除时,会创建新行并将旧行标记为不可见的"死元组"。通常autovaccum进程会异步清理这些死元组。
该命令列出最后一次手动vacuum和自动vacuum的时间、表的行数、死行数以及是否预期会运行自动vacuum。如果死行数远高于行数,或者预期会运行自动vacuum但长时间未执行,这可能表明自动vacuum无法跟上节奏,需要调整vacuum设置或增加计算资源/磁盘IOPS以使自动vacuum能够完成。
模式 │ 表名 │ 最后手动VACUUM │ 最后自动VACUUM │ 行数 │ 死行数 │ 预期自动VACUUM?
──────────────────────┼──────────────────────────────────┼─────────────┼──────────────────┼──────────────────────┼────────────────┼─────────────────────
auth │ users │ │ 2023-06-26 12:34 │ 18,030 │ 0 │ 否
public │ profiles │ │ 2023-06-26 23:45 │ 13,420 │ 28 │ 否
public │ logs │ │ 2023-06-26 01:23 │ 1,313,033 │ 3,318,228 │ 是
storage │ objects │ │ │ 无统计信息 │ 0 │ 否
storage │ buckets │ │ │ 无统计信息 │ 0 │ 否
supabase_migrations │ schema_migrations │ │ │ 无统计信息 │ 0 │ 否
Usage
1supabase inspect db vacuum-stats
Flags
- --db-url <字符串>Optional
检查指定连接字符串对应的数据库(必须进行百分号编码)。
- --linkedOptional
检查链接的项目。
- --localOptional
检查本地数据库。
supabase 检查报告
Usage
1supabase inspect report [flags]
Flags
- --output-dir <字符串>Optional
保存CSV文件的路径
- --db-url <字符串>Optional
检查由连接字符串指定的数据库(必须进行百分号编码)。
- --linkedOptional
检查链接的项目。
- --localOptional
检查本地数据库。
supabase 组织
Subcommands
supabase 组织创建
为已登录用户创建一个组织。
Usage
1supabase orgs create
supabase 组织列表
列出登录用户所属的所有组织。
Usage
1supabase orgs list
supabase 项目
提供用于创建和管理Supabase项目的工具。
此命令组允许您列出组织中的所有项目、创建新项目、删除现有项目以及检索API密钥。这些操作帮助您以编程方式管理Supabase基础设施,而无需使用仪表板。
通过CLI进行项目管理对于自动化脚本特别有用,当您需要以可重复的方式配置环境时。
Subcommands
supabase 项目创建
Usage
1supabase projects create [project name] [flags]
Flags
- --数据库密码 <字符串>Optional
项目的数据库密码。
- --组织ID <字符串>Optional
创建项目所属的组织ID。
- --region <字符串>Optional
选择离您最近的区域以获得最佳性能。
- --size <字符串>Optional
为您的项目选择所需的实例大小。
supabase 项目列表
列出登录用户可以访问的所有Supabase项目。
Usage
1supabase projects list
supabase项目API密钥
Usage
1supabase projects api-keys [flags]
Flags
- --项目引用 <字符串>Optional
Supabase 项目的项目引用。
supabase 项目删除
Usage
1supabase projects delete <ref>
supabase config
Subcommands
supabase config push
使用本地的 supabase/config.toml
文件更新已链接的 Supabase 项目配置。
该命令允许您通过本地定义设置,然后将其推送到远程项目,实现项目配置的代码化管理。
Usage
1supabase config push
Flags
- --project-ref <字符串>Optional
Supabase项目的项目引用。
Supabase 分支
supabase 分支创建
为关联项目创建预览分支。
Usage
1supabase branches create [name] [flags]
Flags
- --persistentOptional
是否创建持久性分支。
- --region <字符串>Optional
选择部署分支数据库的区域。
- --大小 <字符串>Optional
为分支数据库选择所需的实例大小。
- --experimentalRequired
启用实验性功能
- --project-ref <字符串>Optional
Supabase项目的项目引用。
supabase 分支列表
列出关联项目的所有预览分支。
Usage
1supabase branches list
Flags
- --experimentalRequired
启用实验性功能
- --project-ref <字符串>Optional
Supabase 项目的项目引用。
supabase 分支获取
检索指定预览分支的详细信息。
Usage
1supabase branches get [branch-id]
Flags
- --实验性Required
启用实验性功能
- --project-ref <字符串>Optional
Supabase 项目的项目引用。
Supabase 分支更新
通过名称或ID更新预览分支。
Usage
1supabase branches update [branch-id] [flags]
Flags
- --git-branch <字符串>Optional
更改关联的 git 分支。
- --name <字符串>Optional
重命名预览分支。
- --persistentOptional
在临时分支和持久分支之间切换。
- --status <字符串>Optional
覆盖当前分支状态。
- --experimentalRequired
启用实验性功能
- --project-ref <字符串>Optional
Supabase项目的项目引用
supabase分支删除
通过名称或ID删除预览分支
Usage
1supabase branches delete [branch-id]
Flags
- --experimentalRequired
启用实验性功能
- --project-ref <字符串>Optional
Supabase项目的项目引用。
supabase branches disable
为关联项目禁用预览分支功能。
Usage
1supabase branches disable
Flags
- --experimentalRequired
启用实验性功能
- --project-ref <字符串>Optional
Supabase项目的项目引用
supabase 函数
管理Supabase边缘函数。
Supabase边缘函数是靠近用户运行的无服务器函数。
边缘函数允许您执行自定义服务器端代码,而无需部署或扩展传统服务器。它们非常适合处理webhook、自定义API端点、数据验证和提供个性化内容。
边缘函数使用TypeScript编写,并在Deno兼容的边缘运行时上运行,这是一个安全的运行时,无需包管理,冷启动快速,并具有内置安全性。
Subcommands
supabase 函数新建
在supabase/functions
目录中创建一个带有样板代码的新边缘函数。
此命令会生成一个包含必要Deno导入和基本函数结构的TypeScript入门文件。函数将以您指定的名称创建为一个新目录,其中包含带有函数代码的index.ts
文件。
创建函数后,您可以在本地编辑它,然后使用supabase functions serve
进行测试,最后通过supabase functions deploy
部署。
Usage
1supabase functions new <Function name>
supabase functions list
列出关联Supabase项目中的所有函数。
Usage
1supabase functions list [flags]
Flags
- --project-ref <字符串>Optional
Supabase 项目的项目引用。
supabase functions download
从关联的 Supabase 项目下载函数的源代码。
Usage
1supabase functions download <Function name> [flags]
Flags
- --legacy-bundleOptional
使用旧版打包机制。
- --project-ref <string>Optional
Supabase项目的项目引用
supabase 函数服务
在本地运行所有函数。
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
- 控制边缘运行时如何转发HTTP请求到工作线程
per_worker
允许多个请求转发至已创建的工作线程oneshot
强制工作线程处理单个请求后立即退出(调试专用,即时反映代码修改时特别有用)
Usage
1supabase functions serve [flags]
Flags
- --env-file <字符串>Optional
指向环境变量文件的路径,该文件内容将注入函数运行环境
- --import-map <字符串>Optional
导入映射文件的路径
- --inspectOptional
--inspect-mode brk 的别名。
- --inspect-mainOptional
允许检查主工作线程。
- --inspect-mode <[ run | brk | wait ]>Optional
激活检查器功能以进行调试。
- --不验证-jwtOptional
禁用该函数的JWT验证。
supabase 函数部署
将函数部署到关联的Supabase项目
Usage
1supabase functions deploy [Function name] [flags]
Flags
- --import-map <string>Optional
导入映射文件的路径
- -j, --jobs <数量>Optional
最大并行任务数。
- --no-verify-jwtOptional
禁用该函数的JWT验证。
- --project-ref <字符串>Optional
Supabase 项目的项目引用。
- --use-apiOptional
使用管理 API 打包函数。
- --use-dockerOptional
使用 Docker 打包函数。
supabase 函数删除
从关联的 Supabase 项目中删除一个函数。此操作不会在本地移除该函数。
Usage
1supabase functions delete <Function name> [flags]
Flags
- --project-ref <字符串>Optional
Supabase 项目的项目引用。
supabase 密钥
提供工具用于管理您的Supabase项目的环境变量和机密信息。
此命令组允许您设置、删除和列出安全存储的机密信息,这些信息将作为环境变量提供给边缘函数使用。
通过CLI进行机密管理适用于:
- 设置特定环境配置
- 安全管理敏感凭证
为方便起见,可以单独设置机密或从.env文件加载。
Subcommands
supabase 密钥设置
为关联的Supabase项目设置一个或多个密钥。
Usage
1supabase secrets set <NAME=VALUE> ... [flags]
Flags
- --env-file <string>Optional
从.env文件中读取密钥。
- --project-ref <string>Optional
Supabase项目的项目引用标识。
supabase 密钥列表
列出链接项目中的所有密钥。
Usage
1supabase secrets list
Flags
- --project-ref <字符串>Optional
Supabase项目的项目引用。
supabase 密钥取消设置
从关联的Supabase项目中删除一个或多个机密信息。
Usage
1supabase secrets unset [NAME] ...
Flags
- --project-ref <字符串>Optional
Supabase项目的项目引用标识。
supabase 存储
supabase storage ls
Usage
1supabase storage ls [path] [flags]
Flags
- -r, --recursiveOptional
递归列出目录内容。
- --experimentalRequired
启用实验性功能
- --linkedOptional
连接到关联项目的存储API。
- --localOptional
连接到本地数据库的存储API。
supabase storage cp
Usage
1supabase storage cp <src> <dst> [flags]
Flags
- --cache-control <字符串>Optional
为HTTP上传自定义Cache-Control头。
- --content-type <字符串>Optional
HTTP上传的自定义Content-Type头。
- -j, --jobs <无符号整数>Optional
最大并行任务数。
- -r, --recursiveOptional
递归复制目录。
- --experimentalRequired
启用实验性功能
- --linkedOptional
连接到关联项目的存储API。
- --localOptional
连接到本地数据库的存储API。
supabase storage mv
Usage
1supabase storage mv <src> <dst> [flags]
Flags
- -r, --recursiveOptional
递归移动目录
- --experimentalRequired
启用实验性功能
- --linkedOptional
连接到关联项目的存储API。
- --localOptional
连接到本地数据库的存储API。
supabase storage rm
Usage
1supabase storage rm <file> ... [flags]
Flags
- -r, --recursiveOptional
递归删除目录
- --experimentalRequired
启用实验性功能
- --linkedOptional
连接到关联项目的存储API。
- --localOptional
连接到本地数据库的存储API。
supabase 加密
supabase encryption get-root-key
Usage
1supabase encryption get-root-key
Flags
- --project-ref <字符串>Optional
Supabase 项目的项目引用。
supabase 加密更新根密钥
Usage
1supabase encryption update-root-key
Flags
- --project-ref <字符串>Optional
Supabase 项目的项目引用。
supabase 单点登录
supabase 单点登录添加
为您的Supabase项目添加并配置一个新的SSO身份提供商连接。
Usage
1supabase sso add [flags]
Flags
- --attribute-mapping-file <string>Optional
包含SAML属性与自定义JWT声明之间JSON映射的文件。
- --domains <strings>Optional
与新增身份提供商关联的电子邮件域名的逗号分隔列表。
- --metadata-file <string>Optional
包含描述身份提供者的SAML 2.0元数据XML文档的文件。
- --metadata-url <字符串>Optional
指向描述身份提供者的SAML 2.0元数据XML文档的URL。
- --skip-url-validationOptional
是否不应执行SAML 2.0元数据URL的本地验证。
- -t, --type <[ saml ]>Required
身份提供者类型(根据支持的协议)。
- --project-ref <字符串>Optional
Supabase 项目的项目引用。
12345supabase sso add \ --project-ref abcdefgijklmnopqrst \ --type saml \ --metadata-url 'https://...' \ --domains company.com
Response
123Information about the added identity provider. You can usecompany.com as the domain name on the frontend side to initiate a SSOrequest to the identity provider.
supabase sso 列表
列出与您的 Supabase 项目连接的所有 SSO 身份提供商。
Usage
1supabase sso list
Flags
- --project-ref <字符串>Optional
Supabase 项目的项目引用。
supabase sso 显示
提供有关与身份提供者建立的连接的信息。您可以使用--metadata获取存储在项目配置中的原始SAML 2.0元数据XML文档。
Usage
1supabase sso show <provider-id> [flags]
Flags
- --metadataOptional
仅显示SAML 2.0 XML元数据
- --project-ref <字符串>Optional
Supabase 项目的项目引用。
12supabase sso show 6df4d73f-bf21-405f-a084-badf19fea5 \ --project-ref abcdefghijklmnopqrst
Response
1Information about the identity provider in pretty output.
Supabase 单点登录信息
返回项目注册到兼容SAML 2.0身份提供商所需的所有重要SSO信息。
Usage
1supabase sso info
Flags
- --project-ref <字符串>Optional
Supabase项目的项目引用。
1supabase sso信息 --project-ref abcdefghijklmnopqrst
Response
1Information about your project's SAML 2.0 configuration.
supabase sso 更新
更新已添加的SSO身份提供商的配置设置。
Usage
1supabase sso update <provider-id> [flags]
Flags
- --add-domains <字符串>Optional
将这些以逗号分隔的电子邮件域名添加到身份提供者。
- --attribute-mapping-file <字符串>Optional
包含SAML属性与自定义JWT声明之间JSON映射的文件。
- --domains <字符串>Optional
用此逗号分隔的电子邮件域名列表替换域名。
- --metadata-file <字符串>Optional
包含描述身份提供者的SAML 2.0元数据XML文档的文件。
- --metadata-url <字符串>Optional
指向描述身份提供者的SAML 2.0元数据XML文档的URL。
- --remove-domains <字符串列表>Optional
从身份提供者中移除这个以逗号分隔的电子邮件域名列表。
- --skip-url-validationOptional
是否不应执行SAML 2.0元数据URL的本地验证。
- --project-ref <字符串>Optional
Supabase项目的项目引用。
123supabase sso update 6df4d73f-bf21-405f-a084-b11adf19fea5 \ --project-ref abcdefghijklmnopqrst \ --domains new-company.com,new-company.net
Response
1Information about the updated provider.
supabase sso 移除
移除已添加的 SSO 身份提供程序连接。移除提供程序将阻止现有用户登录。请谨慎使用此命令。
Usage
1supabase sso remove <provider-id>
Flags
- --project-ref <字符串>Optional
Supabase 项目的项目引用。
12supabase sso 移除 6df4d73f-bf21-405f-a084-b11adf19fea5 \ --project-ref abcdefghijklmnopqrst
Response
12Information about the removed identity provider. It's a good idea tosave this in case you need it later on.
Supabase 域名
管理Supabase项目的自定义域名。
自定义域名与个性化子域名的使用是互斥的。
Subcommands
supabase 域名激活
为项目启用自定义域名配置。
此操作将重新配置您的 Supabase 项目,使其响应自定义域名上的请求。
激活自定义域名后,您项目的第三方身份验证提供商将不再在 Supabase 提供的子域名上运行。请参阅文档中的准备激活您的域名部分,了解需要遵循的步骤详情。
Usage
1supabase domains activate
Flags
- --include-raw-outputOptional
包含原始输出(用于调试)。
- --project-ref <字符串>Optional
Supabase项目的项目引用。
supabase 域名创建
为您的Supabase项目创建自定义主机名。
期望您的自定义主机名具有指向Supabase项目子域的CNAME记录。
Usage
1supabase domains create [flags]
Flags
- --custom-hostname <字符串>Optional
为您的Supabase项目使用的自定义主机名。
- --include-raw-outputOptional
包含原始输出(对调试有用)。
- --project-ref <字符串>Optional
Supabase 项目的项目引用编号。
Supabase 域名获取
获取项目中存储的自定义主机名配置,该配置保存在Supabase平台中。
Usage
1supabase domains get
Flags
- --include-raw-outputOptional
包含原始输出(用于调试)。
- --project-ref <string>Optional
Supabase项目的项目引用。
Supabase 域名重新验证
Usage
1supabase domains reverify
Flags
- --include-raw-outputOptional
包含原始输出(用于调试)。
- --project-ref <string>Optional
Supabase项目的项目引用。
supabase 域名删除
Usage
1supabase domains delete
Flags
- --include-raw-outputOptional
包含原始输出(用于调试)。
- --project-ref <string>Optional
Supabase项目的项目引用。
supabase 自定义子域名
管理 Supabase 项目的自定义子域名。
自定义子域名与自定义域名的使用互斥。
Subcommands
supabase 自定义子域名激活
为您的Supabase项目激活自定义子域名。
这将重新配置您的Supabase项目,使其响应自定义子域名上的请求。 自定义子域名激活后,您项目的认证服务将不再在{project-ref}.{supabase-domain}主机名上运行。
Usage
1supabase vanity-subdomains activate [flags]
Flags
- --desired-subdomain <string>Optional
为您的Supabase项目使用的自定义子域名。
- --experimentalRequired
启用实验性功能
- --project-ref <string>Optional
Supabase 项目的项目引用。
supabase 自定义子域名获取
Usage
1supabase vanity-subdomains get
Flags
- --experimentalRequired
启用实验性功能
- --project-ref <字符串>Optional
Supabase 项目的项目引用。
supabase 自定义子域名检查可用性
Usage
1supabase vanity-subdomains check-availability [flags]
Flags
- --desired-subdomain <字符串>Optional
希望为您的 Supabase 项目使用的自定义子域名。
- --experimentalRequired
启用实验性功能
- --project-ref <字符串>Optional
Supabase项目的项目引用。
supabase vanity-subdomains delete
删除项目的自定义子域名,并恢复使用项目引用进行路由。
Usage
1supabase vanity-subdomains delete
Flags
- --experimentalRequired
启用实验性功能
- --project-ref <string>Optional
Supabase 项目的项目引用。
supabase 网络封禁
网络封禁是指那些因流量模式看起来具有滥用性(例如多次认证失败尝试)而被临时封锁的IP地址。
子命令可帮助您查看当前封禁情况,并在需要时解除对IP的封锁。
Subcommands
supabase network-bans get
Usage
1supabase network-bans get
Flags
- --experimentalRequired
启用实验性功能
- --project-ref <字符串>Optional
Supabase 项目的项目引用。
supabase 网络封禁 移除
Usage
1supabase network-bans remove [flags]
Flags
- --db-unban-ip <字符串>Optional
允许数据库连接的IP地址。
- --experimentalRequired
启用实验性功能
- --project-ref <字符串>Optional
Supabase 项目的项目引用。
supabase 网络限制
Subcommands
supabase 网络限制获取
Usage
1supabase network-restrictions get
Flags
- --实验性Required
启用实验性功能
- --project-ref <字符串>Optional
Supabase项目的项目引用。
supabase 网络限制更新
Usage
1supabase network-restrictions update [flags]
Flags
- --绕过CIDR检查Optional
绕过部分CIDR验证检查。
- --db-allow-cidr <字符串>Optional
允许数据库连接的CIDR范围。
- --experimentalRequired
启用实验性功能
- --project-ref <字符串>Optional
Supabase 项目的项目引用标识。
supabase SSL 强制执行
supabase ssl-enforcement get
Usage
1supabase ssl-enforcement get
Flags
- --experimentalRequired
启用实验性功能
- --project-ref <字符串>Optional
Supabase项目的项目引用
supabase SSL 强制执行更新
Usage
1supabase ssl-enforcement update [flags]
Flags
- --禁用数据库SSL强制执行Optional
是否应为所有外部连接禁用数据库的SSL强制执行。
- --启用数据库SSL强制执行Optional
数据库是否应为所有外部连接启用SSL强制。
- --experimentalRequired
启用实验性功能
- --project-ref <字符串>Optional
Supabase项目的项目引用。
supabase postgres 配置
supabase postgres-config get
Usage
1supabase postgres-config get
Flags
- --experimentalRequired
启用实验性功能
- --project-ref <字符串>Optional
Supabase项目的项目引用。
supabase postgres 配置更新
覆盖默认的 Postgres 配置可能导致数据库行为不稳定。 自定义配置还会覆盖基于所使用的计算附加组件生成的优化配置。
Usage
1supabase postgres-config update [flags]
Flags
- --config <字符串>Optional
配置覆盖项以'key=value'键值对形式指定
- --no-restartOptional
更新配置后不重启数据库
- --replace-existing-overridesOptional
若为true,则用提供的覆盖项替换所有现有项。若为false(默认值),则将现有覆盖项与提供的覆盖项合并。
- --experimentalRequired
启用实验性功能
- --project-ref <字符串>Optional
Supabase项目的项目引用标识
supabase postgres-config delete
删除特定的配置覆盖项,将其恢复为默认值。
Usage
1supabase postgres-config delete [flags]
Flags
- --config <字符串>Optional
要删除的配置键(逗号分隔)
- --no-restartOptional
删除配置后不重启数据库。
- --experimentalRequired
启用实验性功能
- --project-ref <字符串>Optional
Supabase项目的项目引用。
Supabase 代码片段
Subcommands
Supabase 代码片段列表
列出关联项目的所有SQL代码片段
Usage
1supabase snippets list
Flags
- --project-ref <字符串>Optional
Supabase项目的项目引用标识
supabase 代码片段下载
下载指定 SQL 代码片段的内容。
Usage
1supabase snippets download <snippet-id>
Flags
- --project-ref <字符串>Optional
Supabase 项目的项目引用。
supabase 服务
Usage
1supabase services
supabase 自动补全
为指定的shell生成supabase的自动补全脚本。 有关如何使用生成的脚本的详细信息,请参阅每个子命令的帮助。
Subcommands
supabase 自动补全 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才能使此设置生效。
Usage
1supabase completion zsh [flags]
Flags
- --no-descriptionsOptional
禁用补全描述
supabase 自动补全 powershell
生成PowerShell的自动补全脚本。
要在当前shell会话中加载补全:
supabase completion powershell | Out-String | Invoke-Expression
要为每个新会话加载补全,请将上述命令的输出 添加到您的PowerShell配置文件中。
Usage
1supabase completion powershell [flags]
Flags
- --no-descriptionsOptional
禁用补全描述
supabase 自动补全 fish
生成fish shell的自动补全脚本。
要在当前shell会话中加载补全:
supabase completion fish | source
要为每个新会话加载补全,请执行一次:
supabase completion fish > ~/.config/fish/completions/supabase.fish
您需要启动一个新的shell才能使此设置生效。
Usage
1supabase completion fish [flags]
Flags
- --no-descriptionsOptional
禁用补全描述
supabase 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才能生效。
Usage
1supabase completion bash
Flags
- --no-descriptionsOptional
禁用补全描述