Name: rails_multisite
Owner: Discourse
Description: Multi tenancy for Rails applications
Created: 2015-10-12 03:39:28.0
Updated: 2018-04-13 14:30:23.0
Pushed: 2018-02-12 07:40:15.0
Homepage: null
Size: 52
Language: Ruby
GitHub Committers
User | Most Recent Commit | # Commits |
---|
Other Committers
User | Most Recent Commit | # Commits |
---|
This gem provides multi-db support for Rails applications.
Using its middleware you can partition your app so each hostname has its own db.
It provides a series of helper for working with multiple database, and some additional rails tasks for working with them.
It was extracted from Discourse. https://discourse.org
Add this line to your application's Gemfile:
gem 'rails_multisite'
And then execute:
$ bundle
Or install it yourself as:
$ gem install rails_multisite
Configuration requires a file called: config/multisite.yml
that specifies connection specs for all dbs.
apter: postgresql
tabase: discourse_mlp
ername: discourse_mlp
ssword: applejack
st: dbhost
ol: 5
meout: 5000
_id: 1 # ensure db_id is unique for each site
st_names:
- discourse.equestria.com
- discourse.equestria.internal
o:
apter: postgresql
tabase: discourse_who
ername: discourse_who
ssword: "Up the time stream without a TARDIS"
st: dbhost
ol: 5
meout: 5000
_id: 2 # ensure db_id is unique for each site
st_names:
- discuss.tardis.gallifrey
sMultisite::ConnectionManagement.each_connection do |db|
run query in context of db
eg: User.find(1)
sMultisite::ConnectionManagement.each_connection(threads: 5) do |db|
run query in context of db, will do so in a thread pool of 5 threads
if any query fails an exception will be raised
eg: User.find(1)
git checkout -b my-new-feature
)git commit -am 'Added some feature'
)git push origin my-new-feature
)