SQLCompyre
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
-
Make sure you have
msodbcsql18installed, or install it here -
Make sure you have
Dockerinstalled, or install it here -
Create a local test database with the following command:
docker compose up
- Set environment variable
export DB_CONNECTION_STRING="mssql+pyodbc://sa:Passw0rd@localhost:1435/master?driver=ODBC+Driver+18+for+SQL+Server&Encrypt=no"
- Navigate to the main directory of this repository and run pytest.
pixi run test
Metadata
Release files for sqlcompyre 2.0.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| sqlcompyre-2.0.0.tar.gz | 116.8 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| sqlcompyre-2.0.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 156.5 kB
Release files / sqlcompyre-2.0.0.tar.gz
| Download URL | sqlcompyre-2.0.0.tar.gz |
|---|---|
| Size | 116.8 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
cdca99a3ea7e5ef31b87243b0ae1334ddb31784a5577c92f6620c4d72c19d9a4
|
|
BLAKE2b-256 checksum How to use checksums |
28d92d0d48bf66438d1ed4fde152460ea44aea95f453747045ae99aad8d214bd
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.0.1 CPython/3.12.8
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Jan 17, 2025.
Transparency logRelease files / sqlcompyre-2.0.0-py3-none-any.whl
| Download URL | sqlcompyre-2.0.0-py3-none-any.whl |
|---|---|
| Size | 39.6 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
1de861985aaf49b94856a519becb7fe75d87159486ec699d47b869efb7846d0b
|
|
BLAKE2b-256 checksum How to use checksums |
20c5fdf9b0beca3754b3b8c63ae85a6ce79b52a73f70eac20802293dda18d5e4
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.0.1 CPython/3.12.8
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Jan 17, 2025.
Transparency log