-
-
Notifications
You must be signed in to change notification settings - Fork 15
Multiple Schemas
Add smooth support to managing and utilizing multiple schemas in your application. It works incredibly nicely with Inherited Tables and it's part of a larger feature for a better multi-tenancy application. PostgreSQL Docs
This feature works with a whitelist/blacklist set of schemas, that filters, in a LIKE manner, the ones that will be present in the schema. These lists are extremely important so that not only can work properly, but also interact with other features from this gem.
default: &default
adapter: postgresql
encoding: unicode
schemas:
whitelist: ['internal']
blacklist: ['external']
# OR a list of items, that also demonstrates the LIKE behavior
default: &default
schemas:
whitelist:
- internal_%
This can also be configured exclusively for Torque, in your application.rb
or similar place.
Torque::PostgreSQL.configure do |c|
c.schemas.whitelist << 'internal'
c.schemas.blacklist += %w[external other]
end
Once you stipulated which schemas will be supported in the configuration, you can now create a migration that creates it.
create_schema :internal
There are 2 ways to set a model's schema. You can define it directly or use the model as the reference for all its models' schemas.
# Directly on the model
module Internal
class User < ActiveRecord::Base
self.schema = 'internal'
end
end
# Indirect using the module
module Internal
def self.schema
'internal'
end
class User < ActiveRecord::Base
end
end
Can't find what you're looking for? Add an issue to the issue tracker.