db-charmer 1.4.3 → 1.4.4
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.
- data/VERSION +1 -1
- data/db-charmer.gemspec +3 -2
- data/lib/db_charmer/finder_overrides.rb +6 -0
- data/lib/tasks/databases.rake +82 -0
- metadata +2 -1
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
1.4.
|
1
|
+
1.4.4
|
data/db-charmer.gemspec
CHANGED
@@ -5,7 +5,7 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = %q{db-charmer}
|
8
|
-
s.version = "1.4.
|
8
|
+
s.version = "1.4.4"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["Alexey Kovyrin"]
|
@@ -34,7 +34,8 @@ Gem::Specification.new do |s|
|
|
34
34
|
"lib/db_charmer/finder_overrides.rb",
|
35
35
|
"lib/db_charmer/multi_db_migrations.rb",
|
36
36
|
"lib/db_charmer/multi_db_proxy.rb",
|
37
|
-
"lib/db_charmer/scope_proxy.rb"
|
37
|
+
"lib/db_charmer/scope_proxy.rb",
|
38
|
+
"lib/tasks/databases.rake"
|
38
39
|
]
|
39
40
|
s.homepage = %q{http://github.com/kovyrin/db-charmer}
|
40
41
|
s.rdoc_options = ["--charset=UTF-8"]
|
@@ -0,0 +1,82 @@
|
|
1
|
+
namespace :db_charmer do
|
2
|
+
namespace :create do
|
3
|
+
desc 'Create all the local databases defined in config/database.yml'
|
4
|
+
task :all => "db:load_config" do
|
5
|
+
ActiveRecord::Base.configurations.each_value do |config|
|
6
|
+
# Skip entries that don't have a database key, such as the first entry here:
|
7
|
+
#
|
8
|
+
# defaults: &defaults
|
9
|
+
# adapter: mysql
|
10
|
+
# username: root
|
11
|
+
# password:
|
12
|
+
# host: localhost
|
13
|
+
#
|
14
|
+
# development:
|
15
|
+
# database: blog_development
|
16
|
+
# <<: *defaults
|
17
|
+
next unless config['database']
|
18
|
+
# Only connect to local databases
|
19
|
+
local_database?(config) { create_core_and_sub_database(config) }
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
23
|
+
|
24
|
+
desc 'Create the databases defined in config/database.yml for the current RAILS_ENV'
|
25
|
+
task :create => "db:load_config" do
|
26
|
+
create_core_and_sub_database(ActiveRecord::Base.configurations[RAILS_ENV])
|
27
|
+
end
|
28
|
+
|
29
|
+
def create_core_and_sub_database(config)
|
30
|
+
create_database(config)
|
31
|
+
config.each_value do | sub_config |
|
32
|
+
next unless sub_config.is_a?(Hash)
|
33
|
+
next unless sub_config['database']
|
34
|
+
create_database(sub_config)
|
35
|
+
end
|
36
|
+
end
|
37
|
+
|
38
|
+
namespace :drop do
|
39
|
+
desc 'Drops all the local databases defined in config/database.yml'
|
40
|
+
task :all => "db:load_config" do
|
41
|
+
ActiveRecord::Base.configurations.each_value do |config|
|
42
|
+
# Skip entries that don't have a database key
|
43
|
+
next unless config['database']
|
44
|
+
# Only connect to local databases
|
45
|
+
local_database?(config) { drop_core_and_sub_database(config) }
|
46
|
+
end
|
47
|
+
end
|
48
|
+
end
|
49
|
+
|
50
|
+
desc 'Drops the database for the current RAILS_ENV'
|
51
|
+
task :drop => "db:load_config" do
|
52
|
+
config = ActiveRecord::Base.configurations[RAILS_ENV || 'development']
|
53
|
+
begin
|
54
|
+
drop_core_and_sub_database(config)
|
55
|
+
rescue Exception => e
|
56
|
+
puts "Couldn't drop #{config['database']} : #{e.inspect}"
|
57
|
+
end
|
58
|
+
end
|
59
|
+
|
60
|
+
|
61
|
+
def local_database?(config, &block)
|
62
|
+
if %w( 127.0.0.1 localhost ).include?(config['host']) || config['host'].blank?
|
63
|
+
yield
|
64
|
+
else
|
65
|
+
puts "This task only modifies local databases. #{config['database']} is on a remote host."
|
66
|
+
end
|
67
|
+
end
|
68
|
+
end
|
69
|
+
|
70
|
+
def drop_core_and_sub_database(config)
|
71
|
+
drop_database(config)
|
72
|
+
config.each_value do | sub_config |
|
73
|
+
next unless sub_config.is_a?(Hash)
|
74
|
+
next unless sub_config['database']
|
75
|
+
begin
|
76
|
+
drop_database(sub_config)
|
77
|
+
rescue
|
78
|
+
$stderr.puts "#{config['database']} not exists"
|
79
|
+
end
|
80
|
+
end
|
81
|
+
end
|
82
|
+
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: db-charmer
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.4.
|
4
|
+
version: 1.4.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Alexey Kovyrin
|
@@ -50,6 +50,7 @@ files:
|
|
50
50
|
- lib/db_charmer/multi_db_migrations.rb
|
51
51
|
- lib/db_charmer/multi_db_proxy.rb
|
52
52
|
- lib/db_charmer/scope_proxy.rb
|
53
|
+
- lib/tasks/databases.rake
|
53
54
|
has_rdoc: true
|
54
55
|
homepage: http://github.com/kovyrin/db-charmer
|
55
56
|
licenses: []
|