Project

banana

0.01
No commit activity in last 3 years
No release in over 3 years
A simple plugin for multiple databases in rails app.
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
2025
 Dependencies

Development

>= 0

Runtime

 Project Readme

Banana

Gem Version Build Status

A simple plugin for multiple databases in rails app.

Installation

Add this line to your application's Gemfile:

gem 'banana'

And then execute:

$ bundle

Or install it yourself as:

$ gem install banana

Usage

  1. add multiple database settings to config/database.yml
  2. add connection setting to model
  3. add database name to migration
  4. as always run rake db:create, rake db:migrate, rake db:drop

Examples

# config/database.yml
default: &default
  adapter: mysql2
  encoding: utf8
  reconnect: false
  pool: 5
  username: root
  password:
  socket: /var/run/mysqld/mysqld.sock

development:
  <<: *default
  database: fruit_development

test:
  <<: *default
  database: fruit_test

production:
  <<: *default
  database: fruit_production

vegetable_development:
  <<: *default
  database: vegetable_development

vegetable_test:
  <<: *default
  database: vegetable_test

vegetable_production:
  <<: *default
  database: vegetable_production
# app/models/vegetable.rb
class Vegetable < ActiveRecord::Base
  establish_connection "vegetable_#{Rails.env}"
end
# app/models/onion.rb
class Onion < Vegetable
end
# db/migrate/20120728121720_create_onions.rb
class CreateOnions < ActiveRecord::Migration
  DATABASE_NAME = "vegetable_#{Rails.env}"

  def change
    create_table :onions do |t|

      t.timestamps
    end
  end
end

Contributing

  1. Fork it
  2. Create your feature branch (git checkout -b my-new-feature)
  3. Commit your changes (git commit -am 'Added some feature')
  4. Push to the branch (git push origin my-new-feature)
  5. Create new Pull Request