class Apartment::Adapters::Mysql2SchemaAdapter
Public Class Methods
new(config)
click to toggle source
Calls superclass method
Apartment::Adapters::AbstractAdapter::new
# File lib/apartment/adapters/mysql2_adapter.rb, line 30 def initialize(config) super @default_tenant = config[:database] reset end
Public Instance Methods
reset()
click to toggle source
Reset current tenant to the default_tenant
# File lib/apartment/adapters/mysql2_adapter.rb, line 39 def reset Apartment.connection.execute "use `#{default_tenant}`" end
Protected Instance Methods
connect_to_new(tenant)
click to toggle source
Connect to new tenant
# File lib/apartment/adapters/mysql2_adapter.rb, line 47 def connect_to_new(tenant) return reset if tenant.nil? Apartment.connection.execute "use `#{environmentify(tenant)}`" rescue ActiveRecord::StatementInvalid => exception Apartment::Tenant.reset raise_connect_error!(tenant, exception) end
process_excluded_model(model)
click to toggle source
# File lib/apartment/adapters/mysql2_adapter.rb, line 57 def process_excluded_model(model) model.constantize.tap do |klass| # Ensure that if a schema *was* set, we override table_name = klass.table_name.split('.', 2).last klass.table_name = "#{default_tenant}.#{table_name}" end end
reset_on_connection_exception?()
click to toggle source
# File lib/apartment/adapters/mysql2_adapter.rb, line 66 def reset_on_connection_exception? true end