Skip to main content

A CLI utility to export CockroachDB schemas in SQL, JSON, or YAML formats.

Project description

PyPI version Python versions License Build status

CRDB Schema Exporter

A CLI tool to export schema definitions (DDL) and data from CockroachDB into SQL, JSON, YAML, or CSV formats. Supports secure TLS connections, per-table output, schema diffing, archive packaging, and row-level data export with batching and compression.

Features

  • Export tables, views, sequences, and user-defined types
  • Output formats: SQL, JSON, YAML
  • Optional: per-object files
  • Optional: output archive (.tar.gz)
  • Optional: schema diff
  • Optional: data export with SQL INSERT INTO or CSV format
  • Row limits and GZIP compression support for data
  • Secure connection with TLS certificates

Installation

pip install crdb-schema-exporter

Usage

crdb-schema-exporter --db=mydb [options]

Key Options

  • --db (required) – CockroachDB database name
  • --host – CRDB host (default: localhost)
  • --certs-dir – Path to TLS certificate directory
  • --tables – Comma-separated list of tables (db.table1,db.table2,...)
  • --format – Output format: sql (default), json, yaml
  • --per-table – Output individual files per object
  • --archive – Package output directory into a .tar.gz file
  • --diff – Compare exported schema against another SQL file
  • --parallel – Enable parallel exports
  • --log-dir – Directory to store log files (default: logs/)

Data Export Options

  • --data – Enable table data export
  • --data-format – Format: sql or csv
  • --data-split – Save each table's data in a separate file
  • --data-limit – Limit number of rows exported per table
  • --data-compress – Compress CSV as .csv.gz (only if --data-format=csv)

Example

Export schema + data as gzipped CSV, with limits:

crdb-schema-exporter \
  --db=movr \
  --data \
  --data-format=csv \
  --data-limit=1000 \
  --data-compress \
  --per-table \
  --archive \
  --verbose

Output

You can also generate a diff file from schema exports using:

crdb-schema-exporter --db=movr --diff=path/to/previous_schema.sql

This will display the differences and optionally write to:

crdb_schema_dumps/movr/movr_schema.diff

Schema and data files are written to:

crdb_schema_dumps/<db_name>/

Example:

crdb_schema_dumps/movr/movr_schema.sql
crdb_schema_dumps/movr/users.csv.gz

📆 Example: Exporting CSV Data

(venv)   crdb-schema-exporter git:(main)  crdb-schema-exporter --db movr --data --data-format csv --data-split

2025-05-27 21:32:28,200 [INFO] Logging to file: logs/crdb_exporter.log
2025-05-27 21:32:28,367 [INFO] Exported data for movr.promo_codes to crdb_schema_dumps/movr/promo_codes.csv
2025-05-27 21:32:28,385 [INFO] Exported data for movr.rides to crdb_schema_dumps/movr/rides.csv
2025-05-27 21:32:28,397 [INFO] Exported data for movr.user_promo_codes to crdb_schema_dumps/movr/user_promo_codes.csv
2025-05-27 21:32:28,410 [INFO] Exported data for movr.users to crdb_schema_dumps/movr/users.csv
2025-05-27 21:32:28,426 [INFO] Exported data for movr.vehicle_location_histories to crdb_schema_dumps/movr/vehicle_location_histories.csv
2025-05-27 21:32:28,439 [INFO] Exported data for movr.vehicles to crdb_schema_dumps/movr/vehicles.csv

Contents of the output directory:

(venv)   crdb-schema-exporter git:(main)  cd crdb_schema_dumps/movr
(venv)   movr git:(main)  ls -lrt
-rw-r--r--  movr_schema.sql
-rw-r--r--  promo_codes.csv
-rw-r--r--  rides.csv
-rw-r--r--  user_promo_codes.csv
-rw-r--r--  users.csv
-rw-r--r--  vehicle_location_histories.csv
-rw-r--r--  vehicles.csv

Use --data-compress to generate .csv.gz versions.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

crdb_schema_exporter-0.2.0.tar.gz (8.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

crdb_schema_exporter-0.2.0-py3-none-any.whl (8.8 kB view details)

Uploaded Python 3

File details

Details for the file crdb_schema_exporter-0.2.0.tar.gz.

File metadata

  • Download URL: crdb_schema_exporter-0.2.0.tar.gz
  • Upload date:
  • Size: 8.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.9.6

File hashes

Hashes for crdb_schema_exporter-0.2.0.tar.gz
Algorithm Hash digest
SHA256 6e0af1c86887c1061f8dd6af85e3961ccd06edb01aec19950ce5d3fd7137e0d4
MD5 a667ad761aab3644fa222dc2d80ea352
BLAKE2b-256 3389d72895edb97ec81e3cad6ac91b0dc8e747cbaa296d8b566f3d960f3a6ee4

See more details on using hashes here.

File details

Details for the file crdb_schema_exporter-0.2.0-py3-none-any.whl.

File metadata

File hashes

Hashes for crdb_schema_exporter-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 27f81558196023076a6bd5736ef39666820e87640286a9437745686f1a182506
MD5 662cdf3249ca00ed6dc38ff094ec293b
BLAKE2b-256 68a6adb0ed1a16d1232a54f9f53a247d17812b5086cb7d3c16b2dfc724a67674

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page