Skip to content

chrismaeda/python-dbdiff

Repository files navigation

Tools to compare database schemas and table rows.

Installation

Install python-dbdiff from PyPI:

pip install python-dbdiff

This will install two command line tools named schemadiff and datadiff.

General Architecture

schema/init.py has a database-agnostic schema framework:

  • Database
  • Table
  • Column
  • Index
  • Constraint

Functions and procedures do not have a class and are currently represented as python dictionaries.

schema/mysql.py has code that reads the MySQL information_schema tables to create schema objects in this framework.

Schema Comparison

The main.py script imports the schema for source and destination database and outputs a scheme comparison report.

Table Data Comparison

The maindata.py script compares the tables rows in the source and destination databases. It depends on the schema framework to determine how to construct primary key objects for each table.

CLI Usage

After installation the schemadiff and datadiff commands become available. Run --help on either command to see all options. The most common invocations are:

schemadiff diffschema DB1_ENV_FILE DB2_ENV_FILE [--uppercase|--lowercase]
schemadiff diffprocs DB1_ENV_FILE DB2_ENV_FILE
schemadiff tablelist DB_ENV_FILE [--uppercase|--lowercase]

datadiff tablediff DB1_ENV_FILE DB2_ENV_FILE [TABLE ...] [--uppercase|--lowercase]
datadiff tablereport DB_ENV_FILE [TABLE ...]

About

Compare database schemas and table rows

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages