[go: up one dir, main page]

Skip to main content
The Xata CLI is a powerful tool for managing your Xata databases, projects, and organizations from the command line. It provides commands for authentication, project management, database operations, and more.

Installation

The CLI binary will be installed to ~/.config/xata/bin/. Make sure this directory is in your PATH.

Installation (Docker)

The container image supports the last 3 PostgreSQL major releases: 16, 17 and 18. To select one, edit the image suffix -pg{majorversion}.

Installation (Windows)

xata clone currently doesn’t work with the native Windows installation. We currently recommend using WSL with the Linux binaries if you need the clone functionality on Windows. Track progress here.

Basic Usage

Container image

Available Commands

Authentication

Organization Management

Project Management

Branch Management

API Key Management

Schema Migrations

  • roll baseline - Create a baseline migration for an existing database schema
  • roll complete - Complete an ongoing migration
  • roll init - Initialize pgroll in the target database
  • roll latest - Print the name of the latest schema version or migration
  • roll migrate - Apply outstanding migrations from a directory to a database
  • roll update - Update outdated migrations in a directory
  • roll pull - Pull migration history from the target database and write it to disk
  • roll rollback - Roll back an ongoing migration
  • roll start - Start a migration
  • roll status - Show pgroll status
  • roll convert - Convert SQL statements to a pgroll migration

Database Synchronization

  • clone start - Clone a PostgreSQL database with anonymization
  • clone config - Configure transforms for the clone command
  • clone stream - Start a continuous data stream using logical replication

Utility Commands

Global Flags

boolean
Print help information and exit
boolean
Print version information and exit
boolean
Output in JSON format (where applicable)

Required scopes

Most commands work with a key scoped to branch:read. These need more: A key that only has branch:read returns a 401 on the commands above. Scopes are set when you create the key, so a key created before a scope existed does not have it. See API keys for how to create and scope one.

Environment Variables

The Xata CLI can be configured using environment variables. These are useful for CI/CD pipelines, automation workflows, and advanced configuration.

Authentication & Configuration

These variables apply globally to all CLI commands.
string
API key used to authenticate with Xata. In CI/CD environments, set this as a secret. Applies to all commands that require authentication.
string
Select the Xata API environment. Typically not needed unless instructed by Xata support. Applies to all commands.
string
Override the directory where the CLI stores its configuration files. Applies to all commands.

Project & Branch Configuration

These environment variables override the project and branch configuration normally stored in local config files. They apply to all commands that require project or branch context and are especially useful in CI/CD workflows where the CLI is not initialized interactively.
Earlier CLI versions used names without an underscore between words (for example XATA_ORGANIZATIONID, XATA_PROJECTID, XATA_BRANCHID, XATA_BRANCHNAME, XATA_DATABASENAME). These legacy names are still supported, but the snake_case names below are preferred and take precedence when both are set.
string
Your Xata organization ID.
string
Your Xata project ID.
string
The ID of the target branch.
string
The name of the target branch.
string
The database name (default: xata).

Binary Version Overrides

The CLI ships with pinned versions of the pgroll and pgstream binaries. These environment variables allow you to override the pinned version, for example to test a newer release or to pin a specific version in your CI/CD pipeline. The CLI will automatically download the specified version if it is not already present locally.
string
Override the pinned pgroll binary version used by the CLI. If not set, the CLI uses its built-in default. Applies to all xata roll subcommands, xata version, and xata upgrade.
string
Override the pinned pgstream binary version used by the CLI. If not set, the CLI uses its built-in default. Applies to all xata stream subcommands, all xata clone subcommands, xata version, and xata upgrade.

Clone & Stream

string
Source PostgreSQL URL. Can be used instead of the --source-url flag. Applies to xata clone start, xata clone stream, and xata stream destroy.

Networking

string
Timeout in milliseconds for the private branch reachability check (default: 1000). Set to 0 to disable the check entirely. Applies to all xata roll and xata clone subcommands.

Examples