supabase / cli

Supabase CLI. Manage postgres migrations, run Supabase locally, deploy edge functions. Postgres backups. Generating types from your database schema.
https://supabase.com/docs/reference/cli/about
MIT License
937 stars 179 forks source link
cli database database-management dbms environment local postgres postgresql supabase

Supabase CLI (v1)

Coverage Status

Supabase is an open source Firebase alternative. We're building the features of Firebase using enterprise-grade open source tools.

This repository contains all the functionality for Supabase CLI.

Getting started

Install the CLI

Available via NPM as dev dependency. To install:

npm i supabase --save-dev

To install the beta release channel:

npm i supabase@beta --save-dev

When installing with yarn 4, you need to disable experimental fetch with the following nodejs config.

NODE_OPTIONS=--no-experimental-fetch yarn add supabase

Note For Bun versions below v1.0.17, you must add supabase as a trusted dependency before running bun add -D supabase.

macOS Available via [Homebrew](https://brew.sh). To install: ```sh brew install supabase/tap/supabase ``` To install the beta release channel: ```sh brew install supabase/tap/supabase-beta brew link --overwrite supabase-beta ``` 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`/`.pkg.tar.zst` file depending on your package manager and run the respective commands. ```sh sudo apk add --allow-untrusted <...>.apk ``` ```sh sudo dpkg -i <...>.deb ``` ```sh sudo rpm -i <...>.rpm ``` ```sh sudo pacman -U <...>.pkg.tar.zst ```
Other Platforms You can also install the CLI via [go modules](https://go.dev/ref/mod#go-install) without the help of package managers. ```sh go install github.com/supabase/cli@latest ``` Add a symlink to the binary in `$PATH` for easier access: ```sh ln -s "$(go env GOPATH)/cli" /usr/bin/supabase ``` This works on other non-standard Linux distros.
Community Maintained Packages Available via [pkgx](https://pkgx.sh/). Package script [here](https://github.com/pkgxdev/pantry/blob/main/projects/supabase.com/cli/package.yml). To install in your working directory: ```bash pkgx install supabase ``` Available via [Nixpkgs](https://nixos.org/). Package script [here](https://github.com/NixOS/nixpkgs/blob/master/pkgs/development/tools/supabase-cli/default.nix).

Run the CLI

supabase bootstrap

Or using npx:

npx supabase bootstrap

The bootstrap command will guide you through the process of setting up a Supabase project using one of the starter templates.

Docs

Command & config reference can be found here.

Breaking changes

We follow semantic versioning for changes that directly impact CLI commands, flags, and configurations.

However, due to dependencies on other service images, we cannot guarantee that schema migrations, seed.sql, and generated types will always work for the same CLI major version. If you need such guarantees, we encourage you to pin a specific version of CLI in package.json.

Developing

To run from source:

# Go >= 1.22
go run . help