dkdeploy-core 9.0.0 → 9.3.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.
Files changed (61) hide show
  1. checksums.yaml +5 -5
  2. data/.rubocop.yml +36 -8
  3. data/.travis.yml +7 -5
  4. data/Berksfile +2 -0
  5. data/Berksfile.lock +36 -35
  6. data/CHANGELOG.md +48 -1
  7. data/CONTRIBUTORS.md +3 -0
  8. data/Gemfile +2 -0
  9. data/LICENSE +1 -1
  10. data/README.md +11 -12
  11. data/Rakefile +2 -0
  12. data/Vagrantfile +14 -14
  13. data/config/vm/cookbooks/dkdeploy-core/metadata.rb +4 -4
  14. data/config/vm/cookbooks/dkdeploy-core/recipes/default.rb +11 -13
  15. data/dkdeploy-core.gemspec +13 -11
  16. data/features/assets.feature +0 -1
  17. data/features/file_access.feature +2 -2
  18. data/features/mysql.feature +2 -2
  19. data/features/support/env.rb +4 -2
  20. data/features/utils.feature +3 -3
  21. data/lib/capistrano/dkdeploy/core.rb +14 -17
  22. data/lib/dkdeploy.rb +2 -0
  23. data/lib/dkdeploy/constants.rb +2 -0
  24. data/lib/dkdeploy/core/version.rb +3 -1
  25. data/lib/dkdeploy/dsl.rb +4 -3
  26. data/lib/dkdeploy/helpers/assets.rb +2 -0
  27. data/lib/dkdeploy/helpers/common.rb +2 -0
  28. data/lib/dkdeploy/helpers/db.rb +7 -5
  29. data/lib/dkdeploy/helpers/file_system.rb +7 -12
  30. data/lib/dkdeploy/helpers/mysql.rb +3 -0
  31. data/lib/dkdeploy/i18n.rb +3 -12
  32. data/lib/dkdeploy/interaction_handler/mysql.rb +4 -1
  33. data/lib/dkdeploy/interaction_handler/password.rb +3 -1
  34. data/lib/dkdeploy/rollback_manager.rb +2 -0
  35. data/lib/dkdeploy/scm/copy.rake +39 -12
  36. data/lib/dkdeploy/scm/copy.rb +7 -45
  37. data/lib/dkdeploy/tasks/apache.rake +2 -0
  38. data/lib/dkdeploy/tasks/assets.rake +3 -1
  39. data/lib/dkdeploy/tasks/current_folder.rake +3 -1
  40. data/lib/dkdeploy/tasks/db.rake +138 -154
  41. data/lib/dkdeploy/tasks/deploy.rake +5 -3
  42. data/lib/dkdeploy/tasks/enhanced_symlinks.rake +7 -0
  43. data/lib/dkdeploy/tasks/fail.rake +2 -0
  44. data/lib/dkdeploy/tasks/file_access.rake +2 -0
  45. data/lib/dkdeploy/tasks/maintenance.rake +4 -3
  46. data/lib/dkdeploy/tasks/mysql.rake +5 -0
  47. data/lib/dkdeploy/tasks/project_version.rake +3 -3
  48. data/lib/dkdeploy/tasks/utils.rake +2 -0
  49. data/spec/fixtures/application/Capfile +2 -0
  50. data/spec/fixtures/application/Gemfile +3 -1
  51. data/spec/fixtures/application/config/deploy.rb +25 -23
  52. data/spec/fixtures/application/config/deploy/dev.rb +3 -1
  53. data/spec/fixtures/capistrano/configuration/add_output_after_create_symlink.rb +1 -0
  54. data/spec/fixtures/capistrano/configuration/custom_compass_sources.rb +2 -0
  55. data/spec/fixtures/capistrano/configuration/custom_file_access.rb +2 -0
  56. data/spec/fixtures/capistrano/configuration/default_deployment_behaviour.rb +2 -0
  57. metadata +40 -47
  58. data/features/bower.feature +0 -52
  59. data/lib/capistrano/copy.rb +0 -2
  60. data/lib/dkdeploy/tasks/bower.rake +0 -53
  61. data/spec/fixtures/application/htdocs/bower.json +0 -15
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'tmpdir'
2
4
  require 'capistrano/scm/plugin'
3
5
  require 'capistrano/i18n'
@@ -25,6 +27,8 @@ module Dkdeploy
25
27
  'Thumbs.db',
26
28
  'composer.lock'
27
29
  ]
30
+ set_if_empty :copy_archive_filename, -> { [fetch(:application), rand(0x100000000).to_s(36)].join('_') + '.tar.gz' }
31
+ set_if_empty :copy_local_tmp_dir, Dir.mktmpdir
28
32
  end
29
33
 
30
34
  def register_hooks
@@ -34,51 +38,9 @@ module Dkdeploy
34
38
  end
35
39
 
36
40
  def define_tasks
37
- eval_rakefile File.expand_path('../copy.rake', __FILE__)
38
- end
39
-
40
- # Archive filename as singleton
41
- # Note: if the archive filename doesn't already exist it will be generated
42
- #
43
- # @return [String]
44
- def archive_filename
45
- @archive_filename ||= Dir::Tmpname.make_tmpname [application + '_', '.tar.gz'], nil
46
- end
47
-
48
- # Local temporary directory path as singleton
49
- # Note: if the directory doesn't already exist it will be created
50
- #
51
- # @return [String]
52
- def local_tmp_dir
53
- @local_tmp_dir ||= Dir.mktmpdir
54
- end
55
-
56
- # Archive path in a local temporary directory
57
- #
58
- # @return [String]
59
- def local_exclude_path
60
- File.join local_tmp_dir, 'exclude.txt'
61
- end
62
-
63
- # Archive path in a local temporary directory
64
- #
65
- # @return [String]
66
- def local_archive_path
67
- File.join local_tmp_dir, archive_filename
68
- end
69
-
70
- # Remote temporary directory path
71
- #
72
- # @return [String]
73
- def remote_tmp_dir
74
- File.join fetch(:tmp_dir), application
75
- end
76
-
77
- # Archive path in a remote temporary directory
78
- #
79
- # @return [String]
80
- def remote_archive_path
81
- File.join remote_tmp_dir, archive_filename
41
+ # Don not use method "eval_rakefile" to load rake tasks.
42
+ # "eval_rakefile" defined wrong context and use sskit dsl api instead of capistrano dsl.
43
+ load File.expand_path('copy.rake', __dir__)
82
44
  end
83
45
  end
84
46
  end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'erb'
2
4
  require 'capistrano/i18n'
3
5
  require 'dkdeploy/i18n'
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'i18n'
2
4
  require 'dkdeploy/i18n'
3
5
  require 'dkdeploy/helpers/common'
@@ -44,7 +46,7 @@ namespace :assets do
44
46
  on release_roles :web do
45
47
  info I18n.t('directory.create', scope: :dkdeploy)
46
48
  execute :mkdir, '-p', shared_path
47
- execute :htpasswd, '-c', htpasswd_path, username, interaction_handler: Dkdeploy::InteractionHandler::Password.new(password)
49
+ execute :htpasswd, '-c', htpasswd_path, username, interaction_handler: { /.*password.*/i => "#{password}\n" }
48
50
  info I18n.t('tasks.assets.add_htpasswd.successfully_created', scope: :dkdeploy)
49
51
  end
50
52
  end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  include Capistrano::DSL
2
4
 
3
5
  require 'dkdeploy/i18n'
@@ -6,7 +8,7 @@ namespace :current_folder do
6
8
  desc "Delete current folder unless it's a symlink"
7
9
  task :remove_unlesss_symlinked do
8
10
  on release_roles :all do
9
- if test "[[ -d #{current_path} && ! -L #{current_path} ]]"
11
+ if test "[ -d #{current_path} ] && [ ! -L #{current_path} ]"
10
12
  execute :rm, '-rf', current_path
11
13
  else
12
14
  info I18n.t('info.ignoring_current_folder', scope: :dkdeploy)
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'dkdeploy/constants'
2
4
  require 'dkdeploy/helpers/common'
3
5
  require 'dkdeploy/helpers/db'
@@ -80,23 +82,21 @@ namespace :db do
80
82
  end
81
83
 
82
84
  on primary :backend do
83
- begin
84
- db_settings = read_db_settings_for_context(self)
85
- execute :rm, '-f', remote_zipped_file_name
86
- execute :rm, '-f', remote_file_name
87
- upload! local_zipped_file_name, remote_zipped_file_name, via: :scp
88
- execute :gunzip, remote_zipped_file_name
89
- execute :mysql,
90
- "--default-character-set=#{db_settings.fetch('charset')}",
91
- '-u', db_settings.fetch('username'),
92
- '-p',
93
- '-h', db_settings.fetch('host'), '-P', db_settings.fetch('port'), db_settings.fetch('name'),
94
- '-e', "'source #{remote_file_name}'",
95
- interaction_handler: Dkdeploy::InteractionHandler::MySql.new(db_settings.fetch('password'))
96
- ensure
97
- execute :rm, '-f', remote_zipped_file_name
98
- execute :rm, '-f', remote_file_name
99
- end
85
+ db_settings = read_db_settings_for_context(self)
86
+ execute :rm, '-f', remote_zipped_file_name
87
+ execute :rm, '-f', remote_file_name
88
+ upload! local_zipped_file_name, remote_zipped_file_name, via: :scp
89
+ execute :gunzip, remote_zipped_file_name
90
+ execute :mysql,
91
+ "--default-character-set=#{db_settings.fetch('charset')}",
92
+ '-u', db_settings.fetch('username'),
93
+ '-p',
94
+ '-h', db_settings.fetch('host'), '-P', db_settings.fetch('port'), db_settings.fetch('name'),
95
+ '-e', "'source #{remote_file_name}'",
96
+ interaction_handler: Dkdeploy::InteractionHandler::MySql.new(db_settings.fetch('password'))
97
+ ensure
98
+ execute :rm, '-f', remote_zipped_file_name
99
+ execute :rm, '-f', remote_file_name
100
100
  end
101
101
  end
102
102
 
@@ -110,24 +110,22 @@ namespace :db do
110
110
  remote_zipped_dump_file = "#{remote_dump_file}.gz"
111
111
 
112
112
  on primary :backend do
113
- begin
114
- db_settings = read_db_settings_for_context(self)
115
- execute :rm, '-f', remote_dump_file
116
- execute :rm, '-f', remote_zipped_dump_file
117
- execute :mysqldump,
118
- '--no-data', '--skip-set-charset',
119
- "--default-character-set=#{db_settings.fetch('charset')}",
120
- '-u', db_settings.fetch('username'),
121
- '-p',
122
- '-h', db_settings.fetch('host'), '-P', db_settings.fetch('port'), db_settings.fetch('name'),
123
- '>', remote_dump_file,
124
- interaction_handler: Dkdeploy::InteractionHandler::MySql.new(db_settings.fetch('password'))
125
- execute :gzip, remote_dump_file
126
- download! remote_zipped_dump_file, 'temp', via: :scp
127
- ensure
128
- execute :rm, '-f', remote_dump_file
129
- execute :rm, '-f', remote_zipped_dump_file
130
- end
113
+ db_settings = read_db_settings_for_context(self)
114
+ execute :rm, '-f', remote_dump_file
115
+ execute :rm, '-f', remote_zipped_dump_file
116
+ execute :mysqldump,
117
+ '--no-data', '--skip-set-charset',
118
+ "--default-character-set=#{db_settings.fetch('charset')}",
119
+ '-u', db_settings.fetch('username'),
120
+ '-p',
121
+ '-h', db_settings.fetch('host'), '-P', db_settings.fetch('port'), db_settings.fetch('name'),
122
+ '>', remote_dump_file,
123
+ interaction_handler: Dkdeploy::InteractionHandler::MySql.new(db_settings.fetch('password'))
124
+ execute :gzip, remote_dump_file
125
+ download! remote_zipped_dump_file, 'temp', via: :scp
126
+ ensure
127
+ execute :rm, '-f', remote_dump_file
128
+ execute :rm, '-f', remote_zipped_dump_file
131
129
  end
132
130
  end
133
131
 
@@ -138,29 +136,27 @@ namespace :db do
138
136
  remote_zipped_dump_file = "#{remote_dump_file}.gz"
139
137
 
140
138
  on primary :backend do
141
- begin
142
- db_settings = read_db_settings_for_context(self)
143
- execute :rm, '-f', remote_dump_file
144
- execute :rm, '-f', remote_zipped_dump_file
139
+ db_settings = read_db_settings_for_context(self)
140
+ execute :rm, '-f', remote_dump_file
141
+ execute :rm, '-f', remote_zipped_dump_file
145
142
 
146
- ignore_tables_command_line = ignore_tables.inject('') do |command_line, table|
147
- command_line << " --ignore-table=#{db_settings.fetch('name')}.#{table}"
148
- end
149
-
150
- execute :mysqldump,
151
- "--default-character-set=#{db_settings.fetch('charset')}",
152
- '--skip-set-charset',
153
- '-u', db_settings.fetch('username'),
154
- '-p',
155
- '-h', db_settings.fetch('host'), '-P', db_settings.fetch('port'), ignore_tables_command_line, db_settings.fetch('name'),
156
- '>', remote_dump_file,
157
- interaction_handler: Dkdeploy::InteractionHandler::MySql.new(db_settings.fetch('password'))
158
- execute :gzip, remote_dump_file
159
- download! remote_zipped_dump_file, 'temp', via: :scp
160
- ensure
161
- execute :rm, '-f', remote_dump_file
162
- execute :rm, '-f', remote_zipped_dump_file
143
+ ignore_tables_command_line = ignore_tables.inject('') do |command_line, table|
144
+ command_line + " --ignore-table=#{db_settings.fetch('name')}.#{table}"
163
145
  end
146
+
147
+ execute :mysqldump,
148
+ "--default-character-set=#{db_settings.fetch('charset')}",
149
+ '--skip-set-charset',
150
+ '-u', db_settings.fetch('username'),
151
+ '-p',
152
+ '-h', db_settings.fetch('host'), '-P', db_settings.fetch('port'), ignore_tables_command_line, db_settings.fetch('name'),
153
+ '>', remote_dump_file,
154
+ interaction_handler: Dkdeploy::InteractionHandler::MySql.new(db_settings.fetch('password'))
155
+ execute :gzip, remote_dump_file
156
+ download! remote_zipped_dump_file, 'temp', via: :scp
157
+ ensure
158
+ execute :rm, '-f', remote_dump_file
159
+ execute :rm, '-f', remote_zipped_dump_file
164
160
  end
165
161
  end
166
162
 
@@ -174,24 +170,22 @@ namespace :db do
174
170
  remote_zipped_dump_file = "#{remote_dump_file}.gz"
175
171
 
176
172
  on primary :backend do
177
- begin
178
- db_settings = read_db_settings_for_context(self)
179
- execute :rm, '-f', remote_dump_file
180
- execute :rm, '-f', remote_zipped_dump_file
181
- execute :mysqldump,
182
- '--no-data', '--skip-set-charset',
183
- "--default-character-set=#{db_settings.fetch('charset')}",
184
- '-u', db_settings.fetch('username'),
185
- '-p',
186
- '-h', db_settings.fetch('host'), '-P', db_settings.fetch('port'), db_settings.fetch('name'), table_name,
187
- '>', remote_dump_file,
188
- interaction_handler: Dkdeploy::InteractionHandler::MySql.new(db_settings.fetch('password'))
189
- execute :gzip, remote_dump_file
190
- download! remote_zipped_dump_file, zipped_dump_file, via: :scp
191
- ensure
192
- execute :rm, '-f', remote_dump_file
193
- execute :rm, '-f', remote_zipped_dump_file
194
- end
173
+ db_settings = read_db_settings_for_context(self)
174
+ execute :rm, '-f', remote_dump_file
175
+ execute :rm, '-f', remote_zipped_dump_file
176
+ execute :mysqldump,
177
+ '--no-data', '--skip-set-charset',
178
+ "--default-character-set=#{db_settings.fetch('charset')}",
179
+ '-u', db_settings.fetch('username'),
180
+ '-p',
181
+ '-h', db_settings.fetch('host'), '-P', db_settings.fetch('port'), db_settings.fetch('name'), table_name,
182
+ '>', remote_dump_file,
183
+ interaction_handler: Dkdeploy::InteractionHandler::MySql.new(db_settings.fetch('password'))
184
+ execute :gzip, remote_dump_file
185
+ download! remote_zipped_dump_file, zipped_dump_file, via: :scp
186
+ ensure
187
+ execute :rm, '-f', remote_dump_file
188
+ execute :rm, '-f', remote_zipped_dump_file
195
189
  end
196
190
  end
197
191
 
@@ -209,27 +203,25 @@ namespace :db do
209
203
  FileUtils.mkdir_p file_path
210
204
 
211
205
  on primary :backend do
212
- begin
213
- db_settings = read_db_settings_for_context(self)
214
- execute :rm, '-f', remote_file_name
215
- execute :rm, '-f', remote_zipped_file
216
- execute :mysqldump,
217
- '--no-data', '--skip-set-charset',
218
- '--no-create-info', '--skip-comments',
219
- '--skip-extended-insert', '--skip-set-charset',
220
- "--default-character-set=#{db_settings.fetch('charset')}",
221
- '-u', db_settings.fetch('username'),
222
- '-p',
223
- '-h', db_settings.fetch('host'), '-P', db_settings.fetch('port'),
224
- db_settings.fetch('name'), table_names.join(' '),
225
- '>', remote_file_name,
226
- interaction_handler: Dkdeploy::InteractionHandler::MySql.new(db_settings.fetch('password'))
227
- execute :gzip, remote_file_name
228
- download! remote_zipped_file, local_zipped_file, via: :scp
229
- ensure
230
- execute :rm, '-f', remote_file_name
231
- execute :rm, '-f', remote_zipped_file
232
- end
206
+ db_settings = read_db_settings_for_context(self)
207
+ execute :rm, '-f', remote_file_name
208
+ execute :rm, '-f', remote_zipped_file
209
+ execute :mysqldump,
210
+ '--no-data', '--skip-set-charset',
211
+ '--no-create-info', '--skip-comments',
212
+ '--skip-extended-insert', '--skip-set-charset',
213
+ "--default-character-set=#{db_settings.fetch('charset')}",
214
+ '-u', db_settings.fetch('username'),
215
+ '-p',
216
+ '-h', db_settings.fetch('host'), '-P', db_settings.fetch('port'),
217
+ db_settings.fetch('name'), table_names.join(' '),
218
+ '>', remote_file_name,
219
+ interaction_handler: Dkdeploy::InteractionHandler::MySql.new(db_settings.fetch('password'))
220
+ execute :gzip, remote_file_name
221
+ download! remote_zipped_file, local_zipped_file, via: :scp
222
+ ensure
223
+ execute :rm, '-f', remote_file_name
224
+ execute :rm, '-f', remote_zipped_file
233
225
  end
234
226
 
235
227
  run_locally do
@@ -244,23 +236,21 @@ namespace :db do
244
236
  remote_zipped_default_content_file = "#{remote_default_content_file}.gz"
245
237
 
246
238
  on primary :backend do
247
- begin
248
- db_settings = read_db_settings_for_context(self)
249
- execute :rm, '-f', remote_default_content_file
250
- execute :rm, '-f', remote_zipped_default_content_file
251
- upload! local_zipped_default_content_file, remote_zipped_default_content_file, via: :scp
252
- execute :gunzip, remote_zipped_default_content_file
253
- execute :mysql,
254
- "--default-character-set=#{db_settings.fetch('charset')}",
255
- '-u', db_settings.fetch('username'),
256
- '-p',
257
- '-h', db_settings.fetch('host'), '-P', db_settings.fetch('port'), db_settings.fetch('name'),
258
- '-e', "'source #{remote_default_content_file}'",
259
- interaction_handler: Dkdeploy::InteractionHandler::MySql.new(db_settings.fetch('password'))
260
- ensure
261
- execute :rm, '-f', remote_default_content_file
262
- execute :rm, '-f', remote_zipped_default_content_file
263
- end
239
+ db_settings = read_db_settings_for_context(self)
240
+ execute :rm, '-f', remote_default_content_file
241
+ execute :rm, '-f', remote_zipped_default_content_file
242
+ upload! local_zipped_default_content_file, remote_zipped_default_content_file, via: :scp
243
+ execute :gunzip, remote_zipped_default_content_file
244
+ execute :mysql,
245
+ "--default-character-set=#{db_settings.fetch('charset')}",
246
+ '-u', db_settings.fetch('username'),
247
+ '-p',
248
+ '-h', db_settings.fetch('host'), '-P', db_settings.fetch('port'), db_settings.fetch('name'),
249
+ '-e', "'source #{remote_default_content_file}'",
250
+ interaction_handler: Dkdeploy::InteractionHandler::MySql.new(db_settings.fetch('password'))
251
+ ensure
252
+ execute :rm, '-f', remote_default_content_file
253
+ execute :rm, '-f', remote_zipped_default_content_file
264
254
  end
265
255
  end
266
256
 
@@ -271,22 +261,20 @@ namespace :db do
271
261
  remote_zipped_default_structure_file = "#{remote_default_structure_file}.gz"
272
262
 
273
263
  on primary :backend do
274
- begin
275
- db_settings = read_db_settings_for_context(self)
276
- execute :rm, '-f', remote_default_structure_file
277
- execute :rm, '-f', remote_zipped_default_structure_file
278
- upload! local_zipped_default_structure_file, remote_zipped_default_structure_file, via: :scp
279
- execute :gunzip, remote_zipped_default_structure_file
280
- execute :mysql,
281
- "--default-character-set=#{db_settings.fetch('charset')}",
282
- '-u', db_settings.fetch('username'), '-p',
283
- '-h', db_settings.fetch('host'), '-P', db_settings.fetch('port'), db_settings.fetch('name'),
284
- '-e', "'source #{remote_default_structure_file}'",
285
- interaction_handler: Dkdeploy::InteractionHandler::MySql.new(db_settings.fetch('password'))
286
- ensure
287
- execute :rm, '-f', remote_default_structure_file
288
- execute :rm, '-f', remote_zipped_default_structure_file
289
- end
264
+ db_settings = read_db_settings_for_context(self)
265
+ execute :rm, '-f', remote_default_structure_file
266
+ execute :rm, '-f', remote_zipped_default_structure_file
267
+ upload! local_zipped_default_structure_file, remote_zipped_default_structure_file, via: :scp
268
+ execute :gunzip, remote_zipped_default_structure_file
269
+ execute :mysql,
270
+ "--default-character-set=#{db_settings.fetch('charset')}",
271
+ '-u', db_settings.fetch('username'), '-p',
272
+ '-h', db_settings.fetch('host'), '-P', db_settings.fetch('port'), db_settings.fetch('name'),
273
+ '-e', "'source #{remote_default_structure_file}'",
274
+ interaction_handler: Dkdeploy::InteractionHandler::MySql.new(db_settings.fetch('password'))
275
+ ensure
276
+ execute :rm, '-f', remote_default_structure_file
277
+ execute :rm, '-f', remote_zipped_default_structure_file
290
278
  end
291
279
  end
292
280
 
@@ -305,27 +293,25 @@ namespace :db do
305
293
  local_zipped_file = "#{local_file_name}.gz"
306
294
 
307
295
  on primary :backend do
308
- begin
309
- db_settings = read_db_settings_for_context(self)
310
- execute :rm, '-f', remote_file_name
311
- execute :rm, '-f', remote_zipped_file
312
- execute :mysqldump,
313
- "--default-character-set=#{db_settings.fetch('charset')}",
314
- '--no-create-info', '--skip-comments',
315
- '--skip-extended-insert', '--skip-set-charset',
316
- '--complete-insert',
317
- '-u', db_settings.fetch('username'),
318
- '-p',
319
- '-h', db_settings.fetch('host'), '-P', db_settings.fetch('port'),
320
- db_settings.fetch('name'), table_names,
321
- '>', remote_file_name,
322
- interaction_handler: Dkdeploy::InteractionHandler::MySql.new(db_settings.fetch('password'))
323
- execute :gzip, remote_file_name
324
- download! remote_zipped_file, local_zipped_file, via: :scp
325
- ensure
326
- execute :rm, '-f', remote_file_name
327
- execute :rm, '-f', remote_zipped_file
328
- end
296
+ db_settings = read_db_settings_for_context(self)
297
+ execute :rm, '-f', remote_file_name
298
+ execute :rm, '-f', remote_zipped_file
299
+ execute :mysqldump,
300
+ "--default-character-set=#{db_settings.fetch('charset')}",
301
+ '--no-create-info', '--skip-comments',
302
+ '--skip-extended-insert', '--skip-set-charset',
303
+ '--complete-insert',
304
+ '-u', db_settings.fetch('username'),
305
+ '-p',
306
+ '-h', db_settings.fetch('host'), '-P', db_settings.fetch('port'),
307
+ db_settings.fetch('name'), table_names,
308
+ '>', remote_file_name,
309
+ interaction_handler: Dkdeploy::InteractionHandler::MySql.new(db_settings.fetch('password'))
310
+ execute :gzip, remote_file_name
311
+ download! remote_zipped_file, local_zipped_file, via: :scp
312
+ ensure
313
+ execute :rm, '-f', remote_file_name
314
+ execute :rm, '-f', remote_zipped_file
329
315
  end
330
316
 
331
317
  run_locally do
@@ -363,9 +349,7 @@ namespace :db do
363
349
 
364
350
  remote_md5 = '' # to allow assignment in block and later comparison
365
351
  on primary :backend do
366
- if test("[ -f #{remote_dump_md5_file} ]")
367
- remote_md5 = capture("cat #{remote_dump_md5_file}")
368
- end
352
+ remote_md5 = capture("cat #{remote_dump_md5_file}") if test("[ -f #{remote_dump_md5_file} ]")
369
353
  end
370
354
 
371
355
  run_locally do
@@ -392,14 +376,14 @@ namespace :db do
392
376
  '-e', "'source #{remote_dump_file}'",
393
377
  interaction_handler: Dkdeploy::InteractionHandler::MySql.new(db_settings.fetch('password'))
394
378
  end
395
- rescue SSHKit::Command::Failed => exception
379
+ rescue SSHKit::Command::Failed => e
396
380
  run_locally do
397
381
  error "Removing #{remote_dump_file} and #{remote_dump_md5_file}"
398
382
  execute :rm, '-f', remote_dump_md5_file
399
383
  execute :rm, '-f', remote_dump_file
400
384
  end
401
385
  task.reenable
402
- raise "upload_tables failed: #{exception.message}"
386
+ raise "upload_tables failed: #{e.message}"
403
387
  end
404
388
  end
405
389
  end