Gerald the half a schema

Note that as of January 2017 this project is no longer under active development.

A Python Schema Comparison Tool

Gerald is a general purpose database schema toolkit written in Python. It can be used for cataloguing, managing and deploying database schemas. It is designed to allow you to easily identify the differences between databases.

You can use Gerald to determine the differences between your development and test environments, or to integrate changes from a number of different developers into your integration database.

You can use Gerald to compare schemas across different database engines (e.g. Oracle and MySQL), you can also use it to produce database agnostic documentation in text or XML.

Gerald is designed from the ground up to support as many popular relational database systems as possible. Currently it will document and compare schemas from databases implemented in MySQL, Oracle and PostgreSQL. Other databases will be supported in future releases.

You can download Gerald at the package page

Future Plans

This is release of Gerald. It’s still alpha code, but I use it all of the time. Having said that, I’m fairly happy with the current functionality so I will only change it if I absolutely have to, and then usually to extend the features available. This is a minor release with a few bug fixes, improvements and tidying up of the code. It fixes a number of bugs. The main purpose of this release is to fix the installation process when using easy_install. Full details can be found in the CHANGELOG.txt file provided with the code.

The core function is fairly solid and will support a number of enhancements. I’m specifically thinking about, but in no particular order;

  • Improvements to the comparison algorithms
  • SQL Server support
  • SQLite support
  • Firebird support
  • DB2 UDB support
  • A proper persistence mechanism for schema models
  • Make columns first class objects
  • Support the input, storage and retrieval of notes against any object
  • A diagramming front end

If anyone has suggestions I’m happy to hear your thoughts. Send an email to

Outstanding feature requests and bugs are recorded on the project issues page at BitBucket

Indices and tables

Author:Andy Todd
Last Updated:Wednesday the 18th of January, 2017.