Skip to content
This repository has been archived by the owner on Apr 7, 2022. It is now read-only.

A quick way to compare databases from multiple sources (MySQL, PostgreSQL, SQLite) and see differences between table structures.

License

Notifications You must be signed in to change notification settings

ovidyou/database-table-diff

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Database Table Diff

A quick way to compare databases from multiple sources (MySQL, PostgreSQL, SQLite) and see differences between table structures.

Current status: compares table names and tables column names.

Features

  • Saves time comparing database table structures
  • Supports MySQL, PostgreSQL, SQLite
  • Cross-comparision between different database engines
  • Easy setup and configuration
  • Compatible with PHP 5.0 and later

Why you might need it

Migrating database schema changes from dev, to test, to production can end up unsuccessfull at times. You need a way to quickly check if there are differences between databases and this is where this tool comes handy.

After migrating a database to a new database engine (e.g. from MySQL to PostgreSQL), you need to ensure that all tables and their respective columns have been successfully migrated.

There are many other scenarios when you would need a quick way to compare databases.

License

This software is licenced under the GPL 3. Please read LICENSE for information on the software availability and distribution.

Setup / Configuration

Before you can use it, you need to ensure you have the proper PDO drivers installed.

Then you can just copy the files under this project into a folder that is accessible to a web server, so you can run it in your browser.

An example configuration can be seen in the provided example.php, or below:

<?php

// Include the class definition
require 'DatabaseTableDiff.php';

// Database configurations
// You can add as many databases as you wish,
// but note that the first one you declare will be compared with all the rest.

$databases['initial_db'] = array(
  'driver' => 'pgsql',
  'host' => 'localhost',
  'port' => '',
  'dbname' => 'my_initial_db',
  'user' => 'root',
  'pass' => 'root',
);

$databases['migrated_db'] = array(
  'driver' => 'mysql',
  'host' => 'localhost',
  'port' => '',
  'dbname' => 'my_migrated_db',
  'user' => 'root',
  'pass' => 'root',
);


// Create a new instance of DatabaseTableDiff.
$DTD = new DatabaseTableDiff($databases);

// Print a html formatted output of the tables differences.
print $DTD->getFormattedTablesDiff();

TODO

  • Add column properties diff for tables
  • Support more database engines

About

A quick way to compare databases from multiple sources (MySQL, PostgreSQL, SQLite) and see differences between table structures.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages