Database structure management and versioning without headache


2014-01-10 Update: screencast for basic usage of DBeater


Database structure management and versioning without headache

What is DBeater?

DBeater is a multi-database syntax and abstraction layer for managing MySQL, PostgreSQL, SQLite, Oracle, SQLServer, DB2 and FireBird databases for web applications.

DBeater allows you to make iterative changes to your database. Using migration files, you can manipulate and version your database scheme with ease.

Migration files are based on XML. Anyone with XML or HTML knowledge can work with them. Every kind of operation can be accomplished with generic, DB-independant actions, and dialect-specific column types are automatically mapped to generic ones.

Migration between databases is made as easy as copying migration files to another database folder and running DBeater.

In depth

DBeater is written in Ruby and will be distributed as a Ruby Gem, so it will work on every platform. Via its modular architecture, it can support every database adapter that Ruby can support. Support for custom actions may also be included.

The directory structure

In the root project folder, there's a config file and DBeater folder where all migrations files are stored.

The syntax for creating a table called 'products'

The syntax for adding a new field to a table

Currently supported field types

  • Primary key
  • String
  • Text
  • Integer
  • Float
  • Decimal
  • Datetime
  • Timestamp
  • Time
  • Date
  • Binary
  • Boolean

Current supported actions

  • Create Database
  • Create Table
  • Drop Table
  • Change Table
  • Rename Table
  • Add Column
  • Rename Column
  • Change Column
  • Remove Column
  • Add Index
  • Remove Index

Currently supported Events

  • Change (Up & Down in one)
  • Up (For loading a new schema)
  • Down (For downgrading to an old schema)
  • Raw SQL

The best part

DBeater will be entirely open source (under the MIT license). Nothing will be hidden; it will be completely free and open for everyone.

What is already done?

The core functionality of DBeater is already finished. What's left is writing all the adapters and actions, fixing the bugs, improving performance, writing documentation, and making a website.

Where's my money going?

The greatest part of your money will be used to pay database developers to help write adapters for various types of databases. Some of the rest will be to pay the documentation writer. Anything remaining will help me finish all the work.

When will DBeater be released?

Everything should be done by May. At that point, all of the source code will be released to Github and an installable package will be available on RubyGems.

Other ways you can help

After the public release, you will be able to help us by:
  • Making extensions for custom database adapters
  • Making extensions for custom database actions

Created By: