ar-multidb 0.4.0 → 0.4.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CHANGELOG.md +10 -0
- data/README.markdown +17 -0
- data/lib/multidb/balancer.rb +5 -0
- data/lib/multidb/version.rb +1 -1
- data/spec/balancer_spec.rb +6 -1
- data/spec/helpers.rb +4 -1
- metadata +4 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 191bf9ea7a4823bd2c2148a13a3d7e19518233fafaac0be30aa1b018e50057ac
|
4
|
+
data.tar.gz: 0a722ce4f9289e9a1e8bf4c2200ef3243119fff97e570eb8787254f6d4f8aac2
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 7d0da233e8c260b3e1893f1a259fc7014d49bc7fd17bc937c5f0436e6297af1cf794e56b611001a4670dd6a20fc7dc27359cb2ff41d26af5dd42d125b44ce03d
|
7
|
+
data.tar.gz: 3fa308aeb36f94c7717e46c6c1758a66609c278500ccf65141992fc0de0902293a2edfe2a6d358972b8a7dcd8c85784328770e9b2f43c670fe09b8b3558c0269
|
data/CHANGELOG.md
ADDED
@@ -0,0 +1,10 @@
|
|
1
|
+
# Changelog
|
2
|
+
All notable changes to this project will be documented in this file.
|
3
|
+
|
4
|
+
The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/)
|
5
|
+
and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.html)
|
6
|
+
|
7
|
+
## [0.4.1]
|
8
|
+
### Added
|
9
|
+
- Added support for database aliases ( PR #26 )
|
10
|
+
|
data/README.markdown
CHANGED
@@ -81,6 +81,23 @@ If multiple elements are specified, Multidb will use the list to pick a random c
|
|
81
81
|
|
82
82
|
The database hashes follow the same format as the top-level adapter configuration. In other words, each database connection may override the adapter, database name, username and so on.
|
83
83
|
|
84
|
+
You may also add an "alias" record to the configuration to support more than one name for a given database configuration.
|
85
|
+
|
86
|
+
production:
|
87
|
+
adapter: postgresql
|
88
|
+
database: myapp_production
|
89
|
+
username: ohoh
|
90
|
+
password: mymy
|
91
|
+
host: db1
|
92
|
+
multidb:
|
93
|
+
databases:
|
94
|
+
main_db:
|
95
|
+
host: db1-a
|
96
|
+
secondary_db:
|
97
|
+
alias: main_db
|
98
|
+
|
99
|
+
With the above, `Multidb.use(:main_db)` and `Multidb.use(:secondary_db)` will work identically. This can be useful to support naming scheme migrations transparently: once your application is updated to use `secondary_db` where necessary, you can swap out the configuration.
|
100
|
+
|
84
101
|
To use the connection, modify your code by wrapping database access logic in blocks:
|
85
102
|
|
86
103
|
Multidb.use(:slave) do
|
data/lib/multidb/balancer.rb
CHANGED
@@ -28,6 +28,11 @@ module Multidb
|
|
28
28
|
databases.each_pair do |name, config|
|
29
29
|
configs = config.is_a?(Array) ? config : [config]
|
30
30
|
configs.each do |config|
|
31
|
+
if config["alias"]
|
32
|
+
@candidates[name] = @candidates[config["alias"]]
|
33
|
+
next
|
34
|
+
end
|
35
|
+
|
31
36
|
candidate = Candidate.new(name, @default_configuration.default_adapter.merge(config))
|
32
37
|
@candidates[name] ||= []
|
33
38
|
@candidates[name].push(candidate)
|
data/lib/multidb/version.rb
CHANGED
data/spec/balancer_spec.rb
CHANGED
@@ -134,6 +134,11 @@ describe 'Multidb.balancer' do
|
|
134
134
|
end
|
135
135
|
end
|
136
136
|
|
137
|
+
it 'returns the parent connection for aliases' do
|
138
|
+
Multidb.use(:slave1).should_not eq Multidb.use(:slave_alias)
|
139
|
+
Multidb.use(:slave2).should eq Multidb.use(:slave_alias)
|
140
|
+
end
|
141
|
+
|
137
142
|
it 'returns random candidate' do
|
138
143
|
names = []
|
139
144
|
100.times do
|
@@ -151,4 +156,4 @@ describe 'Multidb.balancer' do
|
|
151
156
|
end
|
152
157
|
end
|
153
158
|
|
154
|
-
end
|
159
|
+
end
|
data/spec/helpers.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ar-multidb
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.4.
|
4
|
+
version: 0.4.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Alexander Staubo
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2019-
|
11
|
+
date: 2019-11-13 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activesupport
|
@@ -102,6 +102,7 @@ extra_rdoc_files: []
|
|
102
102
|
files:
|
103
103
|
- ".gitignore"
|
104
104
|
- ".travis.yml"
|
105
|
+
- CHANGELOG.md
|
105
106
|
- Gemfile
|
106
107
|
- LICENSE
|
107
108
|
- README.markdown
|
@@ -138,8 +139,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
138
139
|
- !ruby/object:Gem::Version
|
139
140
|
version: '0'
|
140
141
|
requirements: []
|
141
|
-
|
142
|
-
rubygems_version: 2.7.8
|
142
|
+
rubygems_version: 3.0.6
|
143
143
|
signing_key:
|
144
144
|
specification_version: 4
|
145
145
|
summary: Multidb is an ActiveRecord extension for switching between multiple database
|