bard-rake 0.16.1 → 0.17.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +5 -5
- data/lib/bard/rake/db_multiple_environment_sanity.rb +61 -37
- data/lib/bard/rake/version.rb +1 -1
- metadata +3 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: 6ff9efd86b5af9fe0cd76d0040ff9c8c1ee9f4ac44d6f734d2088208ecb540e8
|
4
|
+
data.tar.gz: 3aa80505be2130df0af16819812d7c7585a7437732e0b9676ced2d1a993f40f6
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 25ce15d5a69099f141387adba4cedb6375842eb9b8c3a798d1e6d1fe1a1c777fcdf4f51d029bb18577300f68b7ff697cb367f15ca5c69f41701ed087f11168ce
|
7
|
+
data.tar.gz: 31d9e860c78f90e836787a386eff659c56ab2a098cc5fc63d779edf15094e4a3abd14b60f2b906bac1f63b8595110efa2030ef76b980d78c0316cd0d4340ccf8
|
@@ -1,59 +1,87 @@
|
|
1
1
|
if defined?(ActiveRecord)
|
2
2
|
namespace :db do
|
3
3
|
namespace :create do
|
4
|
-
task :all =>
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
if includes_test_environment? && !parallel?
|
12
|
-
invoke_task_if_exists "parallel:create"
|
4
|
+
task :all => :load_config do
|
5
|
+
run_in_all_environments do |config, env|
|
6
|
+
if env == "test" && Rake::Task.task_defined?("parallel:create")
|
7
|
+
Rake::Task["parallel:create"].invoke
|
8
|
+
else
|
9
|
+
ActiveRecord::Tasks::DatabaseTasks.create config
|
10
|
+
end
|
13
11
|
end
|
14
12
|
end
|
15
13
|
end
|
16
14
|
|
17
15
|
namespace :drop do
|
18
|
-
task :all =>
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
if includes_test_environment? && !parallel?
|
26
|
-
invoke_task_if_exists "parallel:drop"
|
16
|
+
task :all => :load_config do
|
17
|
+
run_in_all_environments do |config, env|
|
18
|
+
if env == "test" && Rake::Task.task_defined?("parallel:drop")
|
19
|
+
Rake::Task["parallel:drop"].invoke
|
20
|
+
else
|
21
|
+
ActiveRecord::Tasks::DatabaseTasks.drop config
|
22
|
+
end
|
27
23
|
end
|
28
24
|
end
|
29
25
|
end
|
30
26
|
|
31
27
|
namespace :migrate do
|
32
|
-
task :all =>
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
28
|
+
task :all => :load_config do
|
29
|
+
run_in_all_environments do |config, env|
|
30
|
+
if env == "test" && Rake::Task.task_defined?("parallel:migrate")
|
31
|
+
Rake::Task["parallel:migrate"].invoke
|
32
|
+
else
|
33
|
+
ActiveRecord::Tasks::DatabaseTasks.migrate
|
34
|
+
end
|
37
35
|
end
|
36
|
+
end
|
37
|
+
end
|
38
38
|
|
39
|
-
|
40
|
-
|
39
|
+
namespace :rollback do
|
40
|
+
task :all => :load_config do
|
41
|
+
run_in_all_environments do |config, env|
|
42
|
+
if env == "test" && Rake::Task.task_defined?("parallel:rollback")
|
43
|
+
Rake::Task["parallel:rollback"].invoke
|
44
|
+
else
|
45
|
+
ActiveRecord::Base.connection.migration_context.rollback(1)
|
46
|
+
end
|
41
47
|
end
|
42
|
-
|
43
|
-
Rake::Task["db:_dump"].invoke
|
44
48
|
end
|
45
49
|
end
|
46
50
|
|
47
51
|
def run_in_all_environments &block
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
+
invoke_task_if_exists :rails_env
|
53
|
+
|
54
|
+
whitelist = %w(development test staging production)
|
55
|
+
modified_databases = Set.new
|
56
|
+
|
57
|
+
ActiveRecord::Base.configurations.configs_for.each do |db_config|
|
58
|
+
env = db_config.env_name
|
59
|
+
configuration = db_config.config
|
60
|
+
database = configuration["database"]
|
61
|
+
|
62
|
+
next unless database
|
63
|
+
next unless whitelist.include?(env)
|
64
|
+
next if modified_databases.include?(database)
|
65
|
+
|
66
|
+
if local_database?(configuration)
|
67
|
+
ActiveRecord::Base.establish_connection configuration
|
68
|
+
block.call configuration, env
|
69
|
+
else
|
70
|
+
$stderr.puts "This task only modifies local databases. #{database} is on a remote host."
|
71
|
+
end
|
72
|
+
|
73
|
+
modified_databases << database
|
52
74
|
end
|
75
|
+
|
76
|
+
Rake::Task["db:_dump"].invoke
|
53
77
|
end
|
54
78
|
|
55
|
-
def
|
56
|
-
|
79
|
+
def local_database?(configuration)
|
80
|
+
configuration["host"].blank? || LOCAL_HOSTS.include?(configuration["host"])
|
81
|
+
end
|
82
|
+
|
83
|
+
def test_environment?
|
84
|
+
rails_env == "test"
|
57
85
|
end
|
58
86
|
|
59
87
|
def rails_env
|
@@ -63,10 +91,6 @@ if defined?(ActiveRecord)
|
|
63
91
|
ENV["RAILS_ENV"]
|
64
92
|
end
|
65
93
|
end
|
66
|
-
|
67
|
-
def parallel?
|
68
|
-
!!ENV["TEST_ENV_NUMBER"]
|
69
|
-
end
|
70
94
|
end
|
71
95
|
end
|
72
96
|
|
data/lib/bard/rake/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: bard-rake
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.17.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Micah Geisel
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2019-09-21 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rake
|
@@ -112,8 +112,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
112
112
|
- !ruby/object:Gem::Version
|
113
113
|
version: '0'
|
114
114
|
requirements: []
|
115
|
-
|
116
|
-
rubygems_version: 2.6.14
|
115
|
+
rubygems_version: 3.0.3
|
117
116
|
signing_key:
|
118
117
|
specification_version: 4
|
119
118
|
summary: Rake tasks for all bard projects.
|