Roll Commands

Commands for managing database migrations

The roll commands help you manage database migrations using pgroll.

Subcommands

baseline

Create a baseline migration for an existing database schema.

xata roll baseline [--lock-timeout <ms>] [--pgroll-schema <schema>] [--postgres-url <url>] [--role <role>] [--schema <schema>] [--verbose] [-h|--help]
  • --lock-timeout: Postgres lock timeout in milliseconds for pgroll DDL operations
  • --pgroll-schema: Postgres schema to use for pgroll internal state
  • --postgres-url: Postgres URL
  • --role: Optional postgres role to set when executing migrations
  • --schema: Postgres schema to use for the migration
  • --verbose: Enable verbose logging
  • -h, --help: Print help information and exit

complete

Complete an ongoing migration with the operations present in the given file.

xata roll complete [--lock-timeout <ms>] [--pgroll-schema <schema>] [--postgres-url <url>] [--role <role>] [--schema <schema>] [--verbose] [-h|--help]
  • --lock-timeout: Postgres lock timeout in milliseconds for pgroll DDL operations
  • --pgroll-schema: Postgres schema to use for pgroll internal state
  • --postgres-url: Postgres URL
  • --role: Optional postgres role to set when executing migrations
  • --schema: Postgres schema to use for the migration
  • --verbose: Enable verbose logging
  • -h, --help: Print help information and exit

init

Initialize pgroll in the target database.

xata roll init [--lock-timeout <ms>] [--pgroll-schema <schema>] [--postgres-url <url>] [--role <role>] [--schema <schema>] [--verbose] [-h|--help]
  • --lock-timeout: Postgres lock timeout in milliseconds for pgroll DDL operations
  • --pgroll-schema: Postgres schema to use for pgroll internal state
  • --postgres-url: Postgres URL
  • --role: Optional postgres role to set when executing migrations
  • --schema: Postgres schema to use for the migration
  • --verbose: Enable verbose logging
  • -h, --help: Print help information and exit

latest

Print the name of the latest schema version, either in the target database or a local directory.

xata roll latest [--lock-timeout <ms>] [--pgroll-schema <schema>] [--postgres-url <url>] [--role <role>] [--schema <schema>] [--verbose] [--local] [--with-schema] [-h|--help]
  • --lock-timeout: Postgres lock timeout in milliseconds for pgroll DDL operations
  • --pgroll-schema: Postgres schema to use for pgroll internal state
  • --postgres-url: Postgres URL
  • --role: Optional postgres role to set when executing migrations
  • --schema: Postgres schema to use for the migration
  • --verbose: Enable verbose logging
  • --local: Retrieve the latest version from a local migration directory
  • --with-schema: Prefix the version with the schema name
  • -h, --help: Print help information and exit

migrate

Apply outstanding migrations from a directory to a database.

xata roll migrate [--lock-timeout <ms>] [--pgroll-schema <schema>] [--postgres-url <url>] [--role <role>] [--schema <schema>] [--verbose] [--backfill-batch-delay <delay>] [--backfill-batch-size <size>] [--complete] [-h|--help] [<folder>]
  • --lock-timeout: Postgres lock timeout in milliseconds for pgroll DDL operations
  • --pgroll-schema: Postgres schema to use for pgroll internal state
  • --postgres-url: Postgres URL
  • --role: Optional postgres role to set when executing migrations
  • --schema: Postgres schema to use for the migration
  • --verbose: Enable verbose logging
  • --backfill-batch-delay: Duration of delay between batch backfills (eg. 1s, 1000ms)
  • --backfill-batch-size: Number of rows backfilled in each batch
  • --complete: Complete the final migration rather than leaving it active
  • -h, --help: Print help information and exit
  • <folder>: The directory that contains the migrations (default: .xata/migrations)

update

Update outdated migrations in a directory.

xata roll update [--lock-timeout <ms>] [--pgroll-schema <schema>] [--postgres-url <url>] [--role <role>] [--schema <schema>] [--verbose] [-h|--help] [<folder>]
  • --lock-timeout: Postgres lock timeout in milliseconds for pgroll DDL operations
  • --pgroll-schema: Postgres schema to use for pgroll internal state
  • --postgres-url: Postgres URL
  • --role: Optional postgres role to set when executing migrations
  • --schema: Postgres schema to use for the migration
  • --verbose: Enable verbose logging
  • -h, --help: Print help information and exit
  • <folder>: The directory that contains the migrations (default: .xata/migrations)

pull

Pull migration history from the target database and write it to disk.

xata roll pull [--lock-timeout <ms>] [--pgroll-schema <schema>] [--postgres-url <url>] [--role <role>] [--schema <schema>] [--verbose] [--json] [--with-prefixes] [-h|--help] [<folder>]
  • --lock-timeout: Postgres lock timeout in milliseconds for pgroll DDL operations
  • --pgroll-schema: Postgres schema to use for pgroll internal state
  • --postgres-url: Postgres URL
  • --role: Optional postgres role to set when executing migrations
  • --schema: Postgres schema to use for the migration
  • --verbose: Enable verbose logging
  • --json: Output each migration in JSON format instead of YAML
  • --with-prefixes: Prefix each migration filename with its position in the schema history
  • -h, --help: Print help information and exit
  • <folder>: The target directory to pull migrations into (default: .xata/migrations)

rollback

Roll back an ongoing migration.

xata roll rollback [--lock-timeout <ms>] [--pgroll-schema <schema>] [--postgres-url <url>] [--role <role>] [--schema <schema>] [--verbose] [-h|--help]
  • --lock-timeout: Postgres lock timeout in milliseconds for pgroll DDL operations
  • --pgroll-schema: Postgres schema to use for pgroll internal state
  • --postgres-url: Postgres URL
  • --role: Optional postgres role to set when executing migrations
  • --schema: Postgres schema to use for the migration
  • --verbose: Enable verbose logging
  • -h, --help: Print help information and exit

start

Start a migration for the operations present in the given file.

xata roll start <file> [--lock-timeout <ms>] [--pgroll-schema <schema>] [--postgres-url <url>] [--role <role>] [--schema <schema>] [--verbose] [--backfill-batch-delay <delay>] [--backfill-batch-size <size>] [--complete] [--skip-validation] [-h|--help]
  • <file>: The migration file to start
  • --lock-timeout: Postgres lock timeout in milliseconds for pgroll DDL operations
  • --pgroll-schema: Postgres schema to use for pgroll internal state
  • --postgres-url: Postgres URL
  • --role: Optional postgres role to set when executing migrations
  • --schema: Postgres schema to use for the migration
  • --verbose: Enable verbose logging
  • --backfill-batch-delay: Duration of delay between batch backfills (eg. 1s, 1000ms)
  • --backfill-batch-size: Number of rows backfilled in each batch
  • --complete: Mark the migration as complete
  • --skip-validation: Skip migration validation
  • -h, --help: Print help information and exit

status

Show pgroll status.

xata roll status [--lock-timeout <ms>] [--pgroll-schema <schema>] [--postgres-url <url>] [--role <role>] [--schema <schema>] [--verbose] [-h|--help]
  • --lock-timeout: Postgres lock timeout in milliseconds for pgroll DDL operations
  • --pgroll-schema: Postgres schema to use for pgroll internal state
  • --postgres-url: Postgres URL
  • --role: Optional postgres role to set when executing migrations
  • --schema: Postgres schema to use for the migration
  • --verbose: Enable verbose logging
  • -h, --help: Print help information and exit

convert

Convert SQL statements to a pgroll migration.

xata roll convert <file> [--lock-timeout <ms>] [--pgroll-schema <schema>] [--postgres-url <url>] [--role <role>] [--schema <schema>] [--verbose] [--json] [-h|--help]
  • <file>: The migration file to start
  • --lock-timeout: Postgres lock timeout in milliseconds for pgroll DDL operations
  • --pgroll-schema: Postgres schema to use for pgroll internal state
  • --postgres-url: Postgres URL
  • --role: Optional postgres role to set when executing migrations
  • --schema: Postgres schema to use for the migration
  • --verbose: Enable verbose logging
  • --json: Output migration file in JSON format instead of YAML
  • -h, --help: Print help information and exit

Global Flags

  • -h, --help