Deltasql

From GPU

Deltasql Logo

This is the wiki which holds collaborative notes about the deltasql project. deltasql is an Open Source control version system for database schemas. It was developed under the hood of the GPU project. The GPU project uses it to keep track of the database schemas for the file distributor.

Contents

A Database Version Control System

The deltasql client dbredactor integrates into the Eclipse environment with Ant
A strong version control system for databases saves time to developers, who would like to keep their schema updated while developing with minimal effort. With a version control for databases, the number of mistakes due to different schemas or missing scripts is considerably reduced. Critical errors in production due to schema inconsistencies disappear, too.

deltasql is an Open Source tool to synchronize databases with source code, which helps to keep database evolution under control. While developing medium to large applications, developers undertake changes to the data model which go along with changes to the source code.

The deltasql server runs on Apache and is backed by mySQL

From time to time, branches of source code are done to stabilize the code which will go to production. A sort of data model branch is also needed. deltasql provides a simple way to collect all scripts which change the data model, and means to handle data model branches.

The trick is to number the sql scripts and to create on each database instance a table which keeps the number of the latest executed script (the table is named TBSYNCHRONIZE). A form allows the user to enter data from the synchronization table and thereafter the needed chain of datamodel updates is computed and shown to the user. The user has to manually execute the synchronization script.

It is possible to update development schemas (the HEADs) and production schemas (the branches), to transform a production schema into a development schema and vice versa. However, it is not possible to downgrade a schema back to a previous version. There are also deltasql clients which automatically collect synchronization data from a given database schema. Though deltasql works best with Oracle, PostgreSQL and mySQL schemas, any other database type can use most of deltasql functionality.

deltasql is Database Evolution under Control!

Use deltasql

Test deltasql Online

Download Page

deltasql Manual

Image:Rss.png News Feed

On Freshmeat.net

Develop deltasql

ChangeLog

Mailing List

Project Page

Browse CVS

Tests for the deltasql algorithm

A similar approach that uses a synchronization table to keep track of changes is called dbdeploy.

Companies that use deltasql

LogObject - Core activities of LogObject are Mobile Logistics, Automotive Vehicles, and Radars for Traffic Monitoring.

Development with and without deltasql


Without deltasql: A developer has to send his/her scripts to everyone, the exact database state is known only to the database owner
With deltasql: A developer sends the script to the deltasql server only, the exact database state is always known and can be synchronized to any state.