-
Notifications
You must be signed in to change notification settings - Fork 25
Expand file tree
/
Copy pathdatabase_adapter.rb
More file actions
32 lines (26 loc) · 995 Bytes
/
database_adapter.rb
File metadata and controls
32 lines (26 loc) · 995 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
# frozen_string_literal: true
module ActiveRecord
module Tenanted
module DatabaseAdapter # :nodoc:
# Hash of registered database configuration adapters
@adapters = {}
class << self
def register(name, class_name)
@adapters[name.to_s] = class_name
end
def new(db_config)
adapter_class_name = @adapters[db_config.adapter]
if adapter_class_name.nil?
raise ActiveRecord::Tenanted::UnsupportedDatabaseError,
"Unsupported database adapter for tenanting: #{db_config.adapter}. " \
"Supported adapters: #{@adapters.keys.join(', ')}"
end
adapter_class_name.constantize.new(db_config)
end
end
register "sqlite3", "ActiveRecord::Tenanted::DatabaseAdapters::SQLite"
register "mysql2", "ActiveRecord::Tenanted::DatabaseAdapters::MySQL"
register "trilogy", "ActiveRecord::Tenanted::DatabaseAdapters::MySQL"
end
end
end