class Apartment::Adapters::Mysql2SchemaAdapter
Mysql2 Schemas Adapter
def connect_to_new(tenant)
Connect to new tenant
def connect_to_new(tenant) return reset if tenant.nil? Apartment.connection.execute "use `#{environmentify(tenant)}`" rescue ActiveRecord::StatementInvalid => e Apartment::Tenant.reset raise_connect_error!(tenant, e) end
def initialize(config)
def initialize(config) super @default_tenant = config[:database] reset end
def process_excluded_model(model)
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
def reset
Reset current tenant to the default_tenant
def reset return unless default_tenant Apartment.connection.execute "use `#{default_tenant}`" end
def reset_on_connection_exception?
def reset_on_connection_exception? true end