Class: Ridgepole::ReplaceDbTask::Executor
- Inherits:
-
Object
- Object
- Ridgepole::ReplaceDbTask::Executor
- Defined in:
- lib/ridgepole/replace_db_task/executor.rb
Class Method Summary collapse
Instance Method Summary collapse
- #call ⇒ Object
-
#initialize(rails_env, options, block) ⇒ Executor
constructor
A new instance of Executor.
Constructor Details
#initialize(rails_env, options, block) ⇒ Executor
Returns a new instance of Executor.
40 41 42 43 44 |
# File 'lib/ridgepole/replace_db_task/executor.rb', line 40 def initialize(rails_env, , block) @rails_env = rails_env @options = @block = block end |
Class Method Details
.call(rails_env, options, block) ⇒ Object
4 5 6 |
# File 'lib/ridgepole/replace_db_task/executor.rb', line 4 def self.call(rails_env, , block) new(rails_env, , block).call end |
Instance Method Details
#call ⇒ Object
8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 |
# File 'lib/ridgepole/replace_db_task/executor.rb', line 8 def call raise 'config.database_yml_path is required.' if Ridgepole::ReplaceDbTask.config.database_yml_path.blank? raise 'config.schema_file_path is required.' if Ridgepole::ReplaceDbTask.config.schema_file_path.blank? command = <<~EOD #{Ridgepole::ReplaceDbTask.config.ridgepole} \ -c #{Ridgepole::ReplaceDbTask.config.database_yml_path} \ -f #{Ridgepole::ReplaceDbTask.config.schema_file_path} \ #{ignore_tables_option} \ #{drop_table_option} \ #{@options} \ -E #{@rails_env} EOD puts command out = [] is_success = Open3.popen2e(command) do |stdin, stdout_and_stderr, wait_thr| stdin.close stdout_and_stderr.each_line do |line| out << line @block.call(line) end wait_thr.value.success? end out.join("\n") exit(1) unless is_success end |