Files
supabase/web/spec/cli.yml
T

385 lines
9.3 KiB
YAML

openref: 0.1
info:
id: reference/cli
title: About
description: |
The Supabase CLI can be found in our [CLI](https://github.com/supabase/cli) repository.
- [x] Running Supabase locally
- [x] Managing database migrations
- [x] Pushing your local changes to production
- [ ] Manage your Supabase Account
- [ ] Manage your Supabase Projects
- [ ] Generating types directly from your database schema
- [ ] Generating API and validation schemas from your database
## Getting started
```bash
supabase help
```
Follow the [Local Development guide](/docs/guides/local-development) for a quick overview of the CLI functionality.
## Installing the CLI
### macOS
Available via [Homebrew](https://brew.sh). To install:
```sh
brew install supabase/tap/supabase
```
To upgrade:
```sh
brew upgrade supabase
```
### Windows
Available via [Scoop](https://scoop.sh). To install:
```powershell
scoop bucket add supabase https://github.com/supabase/scoop-bucket.git
scoop install supabase
```
To upgrade:
```powershell
scoop update supabase
```
### Linux
Available via [Homebrew](https://brew.sh) and Linux packages.
#### via Homebrew
To install:
```sh
brew install supabase/tap/supabase
```
To upgrade:
```sh
brew upgrade supabase
```
#### via Linux packages
Linux packages are provided in [Releases](https://github.com/supabase/cli/releases).
To install, download the `.apk`/`.deb`/`.rpm` file depending on your package manager
and run `sudo apk add --allow-untrusted <...>.apk`/`sudo dpkg -i <...>.deb`/`sudo rpm -i <...>.rpm` respectively.
## Support
Report issues to our [issue tracker](https://github.com/supabase/cli/issues).
definition: spec/combined.json
libraries:
- name: 'sh'
id: 'sh'
version: '0.0.1'
docs:
path: reference/cli/
sidebar:
- name: 'About'
items:
- index
- name: 'Command reference'
items:
- supabase help
- supabase init
- supabase start
- supabase db branch list
- supabase db branch create
- supabase db branch delete
- supabase db switch
- supabase db changes
- supabase db commit
- supabase db reset
- supabase db remote set
- supabase db remote commit
- supabase db push
- supabase migration new
- name: 'Config reference'
items:
- Config reference
pages:
supabase help:
description: |
Help provides help for any command in the application.
Simply type supabase help `[path to command]` for full details.
examples:
- name: Usage
sh: |
```sh
supabase help [command]
```
supabase init:
description: |
Initialize a project to use Supabase CLI.
examples:
- name: Usage
sh: |
```sh
supabase init
```
supabase start:
description: |
Start the Supabase local development setup.
examples:
- name: Usage
sh: |
```sh
supabase start
```
supabase db branch list:
description: |
List branches.
examples:
- name: Usage
sh: |
```sh
supabase db branch list
```
supabase db branch create:
description: |
Create a branch.
examples:
- name: Usage
sh: |
```sh
supabase db branch create <branch name>
```
supabase db branch delete:
description: |
Delete a branch.
examples:
- name: Usage
sh: |
```sh
supabase db branch delete <branch name>
```
supabase db switch:
description: |
Switch branches.
examples:
- name: Usage
sh: |
```sh
supabase db switch <branch name>
```
supabase db changes:
description: |
Diffs the local database with current migrations, then print the diff to standard output.
examples:
- name: Usage
sh: |
```sh
supabase db changes
```
supabase db commit:
description: |
Diffs the local database with current migrations, writing it as a new migration.
examples:
- name: Usage
sh: |
```sh
supabase db commit <migration name>
```
supabase db reset:
description: |
Resets the local database to reflect current migrations. Any changes on the local database that is not committed will be lost.
examples:
- name: Usage
sh: |
```sh
supabase db reset
```
supabase db remote set:
description: |
Set the remote database to push migrations to.
examples:
- name: Usage
sh: |
```sh
supabase db remote set <remote database connection url>
```
- name: Connection string format
sh: |
```sh
supabase db remote set postgresql://postgres:[YOUR-PASSWORD]@db.azeazeiqsdiqswdsqdxc.supabase.co:5432/postgres
```
supabase db remote commit:
description: |
Commit changes on the remote database since the last pushed migration.
examples:
- name: Usage
sh: |
```sh
supabase db remote commit
```
supabase db push:
description: |
Push new migrations to the remote database.
Flags:
`--dry-run`: Print the migrations that would be applied, but don't actually apply them.
examples:
- name: Usage
sh: |
```sh
supabase db push [--dry-run]
```
supabase migration new:
description: |
Create an empty migration.
examples:
- name: Usage
sh: |
```sh
supabase migration new <migration name>
```
Config reference:
description: |
The config file resides in `supabase/config.toml` after you run `supabase init`.
### `project_id`
`required`
A string used to distinguish different Supabase projects on the same host. Defaults to the working directory name when running `supabase init`.
### `api.port`
`required`, `default: 54321`
Port to use for the API URL.
### `api.schemas`
`required`, `default: []`
Schemas to expose in your API. Tables, views and stored procedures in this schema will get API endpoints. `public` and `storage` are always included.
### `api.extra_search_path`
`required`, `default: ["extensions"]`
Extra schemas to add to the search_path of every request.
### `api.max_rows`
`required`, `default: 1000`
The maximum number of rows returned from a view, table, or stored procedure. Limits payload size for accidental or malicious requests.
### `db.port`
`required`, `default: 54322`
Port to use for the local database URL.
### `db.major_version`
`required`, `default: 14`
The database major version to use. This has to be the same as your remote database's. Run `SHOW server_version;` on the remote database to check.
### `studio.port`
`required`, `default: 54323`
Port to use for Supabase Studio.
### `inbucket.port`
`required`, `default: 54324`
Port to use for the email testing server web interface.
Emails sent with the local dev setup are not actually sent - rather, they are monitored, and you can view the emails that would have been sent from the web interface.
### `auth.site_url`
`required`, `default: "http://localhost:3000"`
The base URL of your website. Used as an allow-list for redirects and for constructing URLs used in emails.
### `auth.additional_redirect_urls`
`required`, `default: ["https://localhost:3000"]`
A list of *exact* URLs that auth providers are permitted to redirect to post authentication.
### `auth.jwt_expiry`
`required`, `default: 3600`
How long tokens are valid for, in seconds. Defaults to 3600 (1 hour), maximum 604,800 seconds (one week).
### `auth.enable_signup`
`required`, `default: true`
Allow/disallow new user signups to your project.
### `auth.email.enable_signup`
`required`, `default: true`
Allow/disallow new user signups via email to your project.
### `auth.email.double_confirm_changes`
`required`, `default: true`
If enabled, a user will be required to confirm any email change on both the old, and new email addresses. If disabled, only the new email is required to confirm.
### `auth.email.enable_confirmations`
`required`, `default: true`
If enabled, users need to confirm their email address before signing in.
### `auth.external.<provider>.enabled`
`required`, `default: false`
Use an external OAuth provider. The full list of providers are: `apple`, `azure`, `bitbucket`, `discord`, `facebook`, `github`, `gitlab`, `google`, `twitch`, `twitter`, `slack`, `spotify`.
### `auth.external.<provider>.client_id`
`required`, `default: ""`
Client ID for the external OAuth provider.
### `auth.external.<provider>.secret`
`required`, `default: ""`
Client secret for the external OAuth provider.