Class: KamalBackup::CLI::DrillCLI
Class Method Summary
collapse
Instance Method Summary
collapse
Methods included from Helpers
#accessory_name, #accessory_reboot_command, #bridge, #command_env, #confirm!, #confirm_production_restore!, #default_deploy_config?, #deploy_snippet, #deployment_mode?, #direct_app, #ensure_remote_version_match!, #exec_remote, #init_config_root, #local_app, #local_command_config, #local_preferences, #print_remote_version_status, #production_restore_confirmation_config, #production_source_defaults, #prompt_required, #redactor, #remote_command_mode?, #remote_version, #require_typed_confirmation, #shared_config_path, #shared_config_source_defaults, #shared_config_template, #validate_deploy_config, #write_init_file
Class Method Details
.basename ⇒ Object
288
289
290
|
# File 'lib/kamal_backup/cli.rb', line 288
def self.basename
CLI.basename
end
|
Instance Method Details
#local(snapshot = "latest") ⇒ Object
294
295
296
297
298
299
|
# File 'lib/kamal_backup/cli.rb', line 294
def local(snapshot = "latest")
confirm!("Run a local restore drill for #{snapshot}? This will overwrite local data.")
result = local_app.drill_on_local_machine(snapshot, check_command: options[:check])
puts(JSON.pretty_generate(result))
exit(1) if local_app.drill_failed?(result)
end
|
#production(snapshot = "latest") ⇒ Object
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
|
# File 'lib/kamal_backup/cli.rb', line 306
def production(snapshot = "latest")
confirm!("Run a production-side restore drill for #{snapshot}? This will restore into scratch targets on production infrastructure.")
if deployment_mode?
argv = ["kamal-backup", "drill", "production", snapshot, "--files", options[:files], "--yes"]
argv.concat(["--database", production_database_name]) if production_database_name
argv.concat(["--sqlite-path", options[:"sqlite-path"]]) if options[:"sqlite-path"]
argv.concat(["--check", options[:check]]) if options[:check]
exec_remote(argv)
else
result = direct_app.drill_on_production(
snapshot,
database_name: production_database_name,
sqlite_path: options[:"sqlite-path"],
file_target: options[:files],
check_command: options[:check]
)
puts(JSON.pretty_generate(result))
exit(1) if direct_app.drill_failed?(result)
end
end
|