Skip to main content

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.

Release files for crdb-schema-exporter 0.2.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for crdb-schema-exporter 0.2.1
File Size Uploaded
crdb_schema_exporter-0.2.1.tar.gz 8.0 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for crdb-schema-exporter 0.2.1
File Interpreter ABI Platform
crdb_schema_exporter-0.2.1-py3-none-any.whl Python 3 none any Details

Total release size: 16.8 kB

Release files / crdb_schema_exporter-0.2.1.tar.gz

Download URL crdb_schema_exporter-0.2.1.tar.gz
Size 8.0 kB
Tags Source
SHA-256 checksum
How to use checksums
a619cf5104d27a5765b2b33b19b4d40f77827a4c5e56396613265662c316fe35
BLAKE2b-256 checksum
How to use checksums
8bf3ab8ac9c59acf1f3c603d693fd6d582d7e1605d15b026cf7e62de6882dbc2
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.9.6

Release files / crdb_schema_exporter-0.2.1-py3-none-any.whl

Download URL crdb_schema_exporter-0.2.1-py3-none-any.whl
Size 8.8 kB
Tags Python 3
SHA-256 checksum
How to use checksums
e638abb5ff7efe7c9e5dfd43c6a402c3a6401f7c7e7b0555a23823b5071dc8cd
BLAKE2b-256 checksum
How to use checksums
537b6117017eacadf4a6dac9754eb85cb5af0692cefc53b2aaab43eecc5a65cd
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.9.6

Release history Release notifications | RSS feed

This release

0.2.1 This release

2 release files

0.2.0

2 release files

0.1.2

2 release files

0.1.1

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page