Skip to main content

Tool for comparing and inspecting data in SQL databases.

Project description

SQLCompyre

CI conda-forge Documentation pypi-version python-version

SQLCompyre is a simple Python package that allows you to find and explore the differences between SQL tables, schemas, and entire databases. It provides both a Python interface and a CLI, allowing it to be used for both ad-hoc comparisons as well as in-depth analyses.

SQLCompyre is designed to be dialect-agnostic and should, thus, work with most database systems out-of-the-box.

Usage example

Given a connection to a database, this snippet will print a report of the differences between two tables:

import sqlalchemy as sa
import sqlcompyre as sc

engine = sa.create_engine("<your_connection_string>")
comparison = sc.compare_tables(engine, "<left table name>", "<right table name>")

report = comparison.summary_report()
print(report)

To find more examples and get started, please visit the documentation.

Installation

SQLCompyre can be installed via pip or conda:

pip install sqlcompyre
# or
micromamba install sqlcompyre
# or
conda install sqlcompyre

Details on its usage can be found in the documentation.

Development

This project is managed by pixi. You can install the package in development mode using:

git clone https://github.com/quantco/sqlcompyre
cd sqlcompyre

pixi run pre-commit-install
pixi run postinstall

Running Tests Locally

  1. Make sure you have msodbcsql18 installed, or install it here

  2. Make sure you have Docker installed, or install it here

  3. Create a local test database with the following command:

docker compose up
  1. Set environment variable
export DB_CONNECTION_STRING="mssql+pyodbc://sa:Passw0rd@localhost:1435/master?driver=ODBC+Driver+18+for+SQL+Server&Encrypt=no"
  1. Navigate to the main directory of this repository and run pytest.
pixi run test

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

sqlcompyre-2.0.0.tar.gz (116.8 kB view details)

Uploaded Source

Built Distribution

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

sqlcompyre-2.0.0-py3-none-any.whl (39.6 kB view details)

Uploaded Python 3

File details

Details for the file sqlcompyre-2.0.0.tar.gz.

File metadata

  • Download URL: sqlcompyre-2.0.0.tar.gz
  • Upload date:
  • Size: 116.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.0.1 CPython/3.12.8

File hashes

Hashes for sqlcompyre-2.0.0.tar.gz
Algorithm Hash digest
SHA256 cdca99a3ea7e5ef31b87243b0ae1334ddb31784a5577c92f6620c4d72c19d9a4
MD5 7ef1ae0c93c8f0cea5652c47b73c9543
BLAKE2b-256 28d92d0d48bf66438d1ed4fde152460ea44aea95f453747045ae99aad8d214bd

See more details on using hashes here.

Provenance

The following attestation bundles were made for sqlcompyre-2.0.0.tar.gz:

Publisher: build.yml on Quantco/sqlcompyre

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file sqlcompyre-2.0.0-py3-none-any.whl.

File metadata

  • Download URL: sqlcompyre-2.0.0-py3-none-any.whl
  • Upload date:
  • Size: 39.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.0.1 CPython/3.12.8

File hashes

Hashes for sqlcompyre-2.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 1de861985aaf49b94856a519becb7fe75d87159486ec699d47b869efb7846d0b
MD5 6d7a8ca946326359d2a842e028db6e5e
BLAKE2b-256 20c5fdf9b0beca3754b3b8c63ae85a6ce79b52a73f70eac20802293dda18d5e4

See more details on using hashes here.

Provenance

The following attestation bundles were made for sqlcompyre-2.0.0-py3-none-any.whl:

Publisher: build.yml on Quantco/sqlcompyre

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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