Home - Rejjn/brazil GitHub Wiki

Brazil

Brazil is a tool to track schema changes to database instances. It is implemented in Ruby on Rails and support deployment of changes to Ruby DBI supported databases (MySQL, ODBC, Oracle, Postgres, SQLite).

Abstraction

Brazil allows for Changes to be tracked in each App by a named Activity. Changes can be executed on a designated development database instance / schema pair when created or only saved to track existing Changes.

The collected Changes to an Activity can then be turned into Versions and deployed to one or several test database instance / schema pairs. A Version can be marked as deployed when it’s been confirmed to have been deployed to the production system.

Bugs

List of known bugs

Versions

1.2 (Aeroplanes)

Initial public version

1.2.1 (Top Gun)

Add support for type for a db instance and rename kind to environment.

  1. Atom support for /apps as /apps.atom
  2. Added updated column for activity to /apps.atom
  3. Make version actions tested, rollback and deployed use update with state instead of having unRESTful action URIs
  4. DRY up form JS by making three general purpose helpers for inline, inserted and existing forms.
  5. Make CSS container full width. Move Activity and Version to wide box layout. Cleanup markup and CSS.
  6. Push business logic down from the controllers into the models. Add RSpec instead of Test::Unit. Cleanup routing.

1.2.2 (The Aviator)

Switch from using the Ruby MySQL driver to using the Ruby DBI abstraction. Allows Brazil to support many different DB’s as deploy target. Only MySQL currently supported for now, but other DB’s should be easy to add later.

  1. Move change suggestions to their own controller in REST style.

1.2.3 (Die Hard 2)

Use resource_controller plugin to DRY all REST controllers. Add crumbs by using before_filters instead of littering the controller.

Added RSpec and started writing specs for everything.

1.2.4 (Cast Away)

Switch the way the database is versioned, use a schema_versions table which is inserted to instead of renaming a table name. Remove deploy note support.

  1. Fix bug that sets Activity as deployed when updating a Version. Version update error when executing SQL should use the show action.
  2. Bug fixes and new features:
  3. Fix layout for app index and activity show page when no app or change has been made, so that a new app or change does not display in the same column.
  4. Require that a schema is set to create or update an activity
  5. Fix nil error when trying to save or execute a suggested change
  6. Return partial form when editing app with ajax
  7. Always syntax highlight SQL in versions, even if there are form errors
  8. Highlight faulty inputs when a form has errors
  9. Upgrade jQuery to 1.3.2 and jQuery UI to 1.6rc6

1.2.5 (Iron Eagle)

Add support for storing the versioned update and rollback in version control, when marking a Version as deployed. Only subversion support for now, but git support is planned as well.

1.2.x Backlog

  1. Make it possible to collapse changes for better overview, may include keyboard navigation as well

Suggested Future Release Features

  1. Merge Version into development database instance when after Version deploy
  2. Filter, Search & Sort Order
⚠️ **GitHub.com Fallback** ⚠️