bard-rake 0.16.1 → 0.17.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 +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.
|