deltasql, Database Evolution under Control
deltasql is an Open Source tool to keep track of your database
schemas.
Quick Links
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 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, a list of frequently asked questions and a set
of tutorial movies explaining how it works.
- 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 or J2EE/mySQL 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.
- Charting features to monitor how deltasql improves over time.
- Ability to diff scripts if they were subsequently updated, ability to plot the tree of tags and branches and more...
- In short, deltasql is lightweight but powerful, fast and reliable :-)
How deltasql works
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 dued 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.
While developing middle size or big applications, developers undertake changes to the data model which go along with changes to the source code. 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 set of php scripts to be executed on an apache server backed by a mySQL database 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 deltasql uses 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 all scripts. 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. 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 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.