Main Page

From Deltasql wiki

Jump to: navigation, search

This is the wiki which holds collaborative notes about the deltasql project. deltasql is an Open Source control version system for database schemas. Deltasql is a simple yet powerful Database Schema Manager which works with several database types as the concept is very simple.

Contents

A Database Version Control System

deltasql server showing all available features

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, Also in case of a schema dumped and imported into another database, it is still upgradeable as the synchronization table is contained into the copyed schema. 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!

deltasql was developed under the hood of the GPU project. Deltasql uses services kindly offered by Sourceforge.


Souceforge logo

Deltasql Reviews

Database Source Control: map those changes by Tim Hustler. It reviews both deltasql and Redgate Sqlserver.


Companies that use deltasql

LogObject - Mobile Logistics, Automotive Vehicles, and Radars for Traffic Monitoring in Switzerland and central Europe.

Amrita Technologies - Healthcare informatics in India and United States.

Techlogix - Banking software in Pakistan and United States.

Neo IT - Services for secure doctor-patient communications in Israel.

Features

  • Deltasql server manages SQL scripts which alter database structure and contents. It organizes scripts in modules, which can be grouped in projects. It allows to search among them.
  • Database synchronization by adding special synchronization table to each schema. Synchronization script generated by deltasql server. Handling of branches of branches and tags supported.
  • Verification step inside synchronization script to ensure script is executed on correct schema (available only for Oracle and PostgreSQL).
  • Several teams of developers can manage several projects and several databases.
  • Ability to manage development schemas and production schemas by creating branches, branches of branches and tags.
  • Syncronization scripts can be generated for Oracle, postgreSQL, mySQL, Microsoft SQL Server and sqlite. On user request, any SQL-like database can be supported.
  • Synchronization script can be exported in several formats, including pretty printed HTML, text and XML or even a zipped package with each script stored in a file.
  • Free to use, Open Source tool licensed under GPL.
  • Integration on Windows platform (XP, 7) with multipurpose deltaclient tool.
  • Integration in Eclipse IDE with ant client or dbredactor client.
  • Bash client can perform continouus database integration on Linux.
  • RSS Feed and iGoogle Gadget show latest submitted scripts.
  • Easy to install, like a webforum, as deltasql server runs on Apache/PHP backed by a mySQL database.
  • There is a manual, video tutorials and a list of frequently asked questions.
  • It is used productively by companies in Pakistan, USA, Italy, Switzerland and India and is popular in Japan and South Korea. In some companies it manages more than 2000 scripts and more than 10 projects.
  • Typically used for large J2EE/Oracle software architectures which are partially customized to the customer's wishes.
  • Ability to send email notifications to users who would like to work without deltasql.
  • Lightweight, fast and reliable :-)

Use deltasql

deltasql for iGoogle page

Download deltasql

Test deltasql online

Read the Frequently Asked Questions (FAQ)

deltasql Manual

Add the deltasql gadget to your iGoogle start page

On Freshmeat.net On Linux Softpedia.

Develop deltasql

The deltasql client dbredactor integrates into the Eclipse environment with Ant

ChangeLog

Project Page

Browse or checkout git repository

Tests for the deltasql algorithm

External libraries used by Deltasql

Deltasql uses the Open Source library geshi to syntax highlight SQL scripts. It uses also an Open Source JDBC driver called jTDS to interface with Microsoft SQL server and Sybase.

Deltasql includes a Calendar Widget released under the LGPL available at http://jscalendar.sourceforge.net

It includes a zip wrapper library under /utils/createzip by Rochak Chauhan (www.rochakchauhan.com)

It includes the Text_Diff library, available under the LGPL at http://pear.php.net/package/Text_Diff .

It includes the phpgraphext library by Mathias Herrmann and Alex Fomenko, available under the LGPL.

It includes the Freepascal Synapse library by Lukas Gebauer, available at http://synapse.ararat.cz/

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

Without deltasql


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.

With deltasql


Roadmap

This is a list of things which could be added in future deltasql releases:

  • add a set of dbupdaters which can be included in existing installers. They will take the synchronization script in .zip format and execute the scripts contained in the .zip in the database (as dbdeploy already does).
  • write a plugin for SquirrelSQL.
Personal tools