multi_ar 5.0.0 → 5.1.0
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
- checksums.yaml.gz.sig +0 -0
- data/lib/multi_ar/interface.rb +1 -1
- data/lib/multi_ar/version.rb +1 -1
- data/lib/multi_ar.rb +29 -14
- data.tar.gz.sig +0 -0
- metadata +3 -5
- metadata.gz.sig +0 -0
- data/bin/multi_ar +0 -13
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: c2d35c65ac586a681d1ae51f3a61a6f98e79f47a467dbdd097d20f427a9b51f8
|
4
|
+
data.tar.gz: a169328e8a669ba95a69fd36fe0fc52c33a5f10f99fdb5186572bc8019fee43f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 19a8273f4ba5bdb663f8b961eabc38bb19e90d2701b2573348350497c5d10637e58c226654279d8565dd36448ca6d97140b8526ae68e2c0e313cfaef7e3586a2
|
7
|
+
data.tar.gz: 3a93f3563be70937ba18b40056bc89e1969945b87915fcd4bf2dfe5e771dfd280bc99beb1c244271198613682db218cc5b74e893704334347aa06a6c4c695a34
|
checksums.yaml.gz.sig
CHANGED
Binary file
|
data/lib/multi_ar/interface.rb
CHANGED
@@ -140,11 +140,11 @@ module MultiAR
|
|
140
140
|
opts[:databases] = parse_databases_input(@opts["databases"])
|
141
141
|
opts[:environment] = @opts["environment"]
|
142
142
|
opts[:verbose] = @opts["verbose"]
|
143
|
-
opts[:migration_framework] = @migration_framework
|
144
143
|
@multi_ar = MultiAR.new opts
|
145
144
|
end
|
146
145
|
|
147
146
|
def parse_databases_input databases
|
147
|
+
return if databases.nil?
|
148
148
|
raise "You did not give proper databases. Please see --help for instructions." unless databases.respond_to? :each
|
149
149
|
|
150
150
|
out = {}
|
data/lib/multi_ar/version.rb
CHANGED
data/lib/multi_ar.rb
CHANGED
@@ -27,7 +27,7 @@ module MultiAR
|
|
27
27
|
|
28
28
|
# @param databases array of available databases
|
29
29
|
# @todo config file is overriding parameters passed here... I think it should be other way around, but need more custom logic for that :/
|
30
|
-
def initialize databases
|
30
|
+
def initialize databases: nil, environment: "development", config: "config/settings.yaml", db_config: "config/database.yaml", verbose: false
|
31
31
|
|
32
32
|
# first load config
|
33
33
|
if not config.nil? and File.exist? config
|
@@ -35,27 +35,22 @@ module MultiAR
|
|
35
35
|
config = Psych.load_file config
|
36
36
|
b = binding
|
37
37
|
config.each do |key, value|
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
out[database["database"]] = database["migration_path"]
|
42
|
-
end
|
43
|
-
value = out
|
38
|
+
# If databases have been passed, we don’t have much reason to override it from config
|
39
|
+
if key != "databases" || databases.nil?
|
40
|
+
b.local_variable_set key.to_sym, value
|
44
41
|
end
|
45
|
-
b.local_variable_set key.to_sym, value
|
46
42
|
end
|
47
43
|
end
|
48
44
|
|
49
45
|
# then check that we have data in format we want it to be
|
50
46
|
raise "#{db_config} is not valid path to a file. Try specifying --db-config <path> or configuring it in the configuration file." if db_config.nil? or !File.exist?(db_config)
|
51
|
-
raise "databases is not responding to :each. Try passing passing --databases <database> or configuring it in the configuration file." unless databases.respond_to? :each
|
47
|
+
#raise "databases is not responding to :each. Try passing passing --databases <database> or configuring it in the configuration file." unless databases.respond_to? :each
|
52
48
|
|
53
|
-
parse_databases_input databases
|
49
|
+
parse_databases_input databases unless databases.nil?
|
54
50
|
|
55
51
|
#@databases = databases
|
56
52
|
@db_config = db_config
|
57
53
|
@environment = environment
|
58
|
-
@migration_framework = migration_framework
|
59
54
|
#@@migration_dirs = migration_dirs unless migration_dirs.empty? # This takes care of that it will only be overridden if there is any given values, making default configs work
|
60
55
|
#ActiveRecord::Tasks::DatabaseTasks.migrations_paths = migration_dirs
|
61
56
|
|
@@ -120,9 +115,11 @@ module MultiAR
|
|
120
115
|
#
|
121
116
|
# @note often you want to add full path to this dir, `__dir__` is useful for this.
|
122
117
|
def self.add_database database_name, migration_path
|
123
|
-
|
124
|
-
|
118
|
+
raise "Migration dir #{migration_path} does not exist." unless Dir.exist? migration_path
|
119
|
+
begin
|
125
120
|
ActiveRecord::Tasks::DatabaseTasks.migrations_paths << migration_path
|
121
|
+
rescue NameError
|
122
|
+
# multi_ar can be used without migration support, so adding a database to migration paths is only necessary when actually running migrations.
|
126
123
|
end
|
127
124
|
@@__databases[database_name] = migration_path
|
128
125
|
end
|
@@ -144,12 +141,30 @@ module MultiAR
|
|
144
141
|
@@__databases
|
145
142
|
end
|
146
143
|
|
144
|
+
# TODO: remember to remove these if not needed...
|
145
|
+
# Helper to resolve a path to database
|
146
|
+
#def self.resolve_database_path
|
147
|
+
|
148
|
+
#end
|
149
|
+
|
150
|
+
#def self.resolve_databases_paths
|
151
|
+
#end
|
152
|
+
|
147
153
|
private
|
148
154
|
|
155
|
+
# Supports three different input formats:
|
156
|
+
#
|
157
|
+
# 1. Array with strings of database names
|
158
|
+
# 2. Array with hashes of { "database" => "db_name", "migration_path" => "/path/to/migrations" }
|
159
|
+
# 3. Hash with key as database name and value as migration path
|
149
160
|
def parse_databases_input dbs
|
150
161
|
if dbs.kind_of? Array
|
151
162
|
dbs.each do |database|
|
152
|
-
|
163
|
+
if database.kind_of? Hash
|
164
|
+
::MultiAR::MultiAR::add_database database["database"], database["migration_path"]
|
165
|
+
else
|
166
|
+
::MultiAR::MultiAR::add_database database, "db/migrate/#{database}"
|
167
|
+
end
|
153
168
|
end
|
154
169
|
return
|
155
170
|
end
|
data.tar.gz.sig
CHANGED
Binary file
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: multi_ar
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 5.
|
4
|
+
version: 5.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Samu Voutilainen
|
@@ -29,7 +29,7 @@ cert_chain:
|
|
29
29
|
w7Q+3AEK9ifd9ywHO2Ott0JdJEadxhU4N0cI6bQg+uJiSYmdBK0vEJN4lhNg1w37
|
30
30
|
C6hgCMQL3/D3kq732F4KGypqykYwx1wRDGHLxDTBHY26sy/TXfHcj4zPuKA=
|
31
31
|
-----END CERTIFICATE-----
|
32
|
-
date: 2018-
|
32
|
+
date: 2018-09-06 00:00:00.000000000 Z
|
33
33
|
dependencies:
|
34
34
|
- !ruby/object:Gem::Dependency
|
35
35
|
name: trollop
|
@@ -161,12 +161,10 @@ description: |-
|
|
161
161
|
Core library for multi database support in any Ruby project for ActiveRecord.
|
162
162
|
Migrations are supported by optional gem multi_ar_migrations.
|
163
163
|
email: smar@smar.fi
|
164
|
-
executables:
|
165
|
-
- multi_ar
|
164
|
+
executables: []
|
166
165
|
extensions: []
|
167
166
|
extra_rdoc_files: []
|
168
167
|
files:
|
169
|
-
- bin/multi_ar
|
170
168
|
- lib/multi_ar.rb
|
171
169
|
- lib/multi_ar/database.rb
|
172
170
|
- lib/multi_ar/interface.rb
|
metadata.gz.sig
CHANGED
Binary file
|
data/bin/multi_ar
DELETED
@@ -1,13 +0,0 @@
|
|
1
|
-
#!/usr/bin/env ruby
|
2
|
-
|
3
|
-
require_relative "../lib/multi_ar/interface"
|
4
|
-
|
5
|
-
require_relative "../lib/multi_ar/version"
|
6
|
-
|
7
|
-
interface = MultiAR::Interface.new
|
8
|
-
interface.version = "multi_ar-#{MultiAR::VERSION}"
|
9
|
-
interface.description = "Multi database migration tools utilizing ActiveRecord"
|
10
|
-
interface.migration_framework = true
|
11
|
-
opts = interface.cli do |parser|
|
12
|
-
# Nya.
|
13
|
-
end
|