Skip to main content

High-Performance Version Control for Database Schemas with Intelligent Processing

Project description

Datatrack - Version Control for Database Schemas

A high-performance CLI tool that brings Git-like version control to your database schemas with intelligent processing optimizations. Built for Data Engineers, Analytics Engineers, and Platform Teams.

Key Features

  • High Performance: 70-75% faster schema introspection for large databases
  • Intelligent Processing: Auto-selects optimal strategy based on schema size
  • Multi-Database Support: PostgreSQL, MySQL, SQLite, SQL Server
  • Schema Comparison: Generate detailed diffs between versions
  • Quality Linting: Enforce naming conventions and best practices
  • Multiple Export Formats: JSON, YAML, Markdown, HTML

Performance Improvements

Schema Size Processing Method Performance Gain
1-49 tables Standard Baseline
50-199 tables Parallel (4 workers) 65-70% faster
200+ tables Parallel + Batched 70-75% faster

Installation

pip install datatrack-core

pip install -e .

This method is ideal if you want to contribute or modify the tool.

## Helpful Commands

Datatrack comes with built-in help and guidance for every command. Use this to quickly learn syntax and options:
```bash
datatrack --help
or
datatrack -h

How to Use

1. Initialize Tracking

datatrack init

Creates .datatrack/, .databases/, and optional initial files.

2. Connect to a Database

Save your DB connection for future use:

MySQL

datatrack connect mysql+pymysql://root:<password>@localhost:3306/<database-name>

PostgreSQL

datatrack connect postgresql+psycopg2://postgres:<password>@localhost:5432/<database-name>

SQLite

datatrack connect sqlite:///.databases/<database-name>

3. Take a Schema Snapshot

# Standard snapshot
datatrack snapshot

# High-performance snapshot with parallel processing
datatrack snapshot --parallel

# Custom performance configuration
datatrack snapshot --parallel --max-workers 8 --batch-size 50

# For large schemas (200+ tables) - automatically optimized
datatrack snapshot  # Auto-enables parallel + batched processing

Saves the current schema to .databases/exports/<db_name>/snapshots/.

4. Lint the Schema

datatrack lint

Detects issues in naming and structure.

5. Verify Schema Rules

datatrack verify

Validates schema against schema_rules.yaml.

6. View Schema Differences

datatrack diff

Shows table and column changes between the latest two snapshots.

7. Export Snapshots or Diffs

Export latest snapshot as YAML (default)

datatrack export

Explicitly export snapshot as YAML

datatrack export --type snapshot --format yaml

Export latest diff as JSON

datatrack export --type diff --format json

Output is saved in .databases/exports/<db_name>/.

8. View Snapshot History

datatrack history

Displays all snapshot timestamps and table counts.

9. Run the Full Pipeline

datatrack pipeline run

Runs lint, snapshot, verify, diff, and export together.

For advanced use cases and integration into CI/CD, visit:

https://github.com/nrnavaneet/datatrack

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

datatrack_core-1.1.2.tar.gz (47.1 kB view details)

Uploaded Source

Built Distribution

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

datatrack_core-1.1.2-py3-none-any.whl (35.4 kB view details)

Uploaded Python 3

File details

Details for the file datatrack_core-1.1.2.tar.gz.

File metadata

  • Download URL: datatrack_core-1.1.2.tar.gz
  • Upload date:
  • Size: 47.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.5

File hashes

Hashes for datatrack_core-1.1.2.tar.gz
Algorithm Hash digest
SHA256 18ccd6fe8d4874e1983c353824964fb3c554a450fe48e2d5bdf313440c30745e
MD5 8e9e9cafd427e7121e68ba237aa1877a
BLAKE2b-256 a6934dfb26f3eb13ddae33cc202bd87ed6389c4b41fbce72aff932d15cc115ad

See more details on using hashes here.

File details

Details for the file datatrack_core-1.1.2-py3-none-any.whl.

File metadata

  • Download URL: datatrack_core-1.1.2-py3-none-any.whl
  • Upload date:
  • Size: 35.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.5

File hashes

Hashes for datatrack_core-1.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 35112f7670d3861058f78119f1421e8322dfeb390565fbbfc57a9d2800ebf57f
MD5 988262f3fa28d102d197539669947240
BLAKE2b-256 794f029f339f72da4cf2dbb6b2ddd26805e516fffe844931710a4569b5f60152

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