Class: DatabaseWizard
- Inherits:
-
Object
- Object
- DatabaseWizard
- Defined in:
- lib/berl/database_wizard.rb
Overview
Service to setup databases
Instance Attribute Summary collapse
-
#databases ⇒ Object
readonly
Returns the value of attribute databases.
Instance Method Summary collapse
-
#initialize ⇒ DatabaseWizard
constructor
A new instance of DatabaseWizard.
- #initialize_num_of_databases(num_of_databases) ⇒ Object
Constructor Details
#initialize ⇒ DatabaseWizard
Returns a new instance of DatabaseWizard.
10 11 12 13 |
# File 'lib/berl/database_wizard.rb', line 10 def initialize @databases = [] @num_of_set_up_databases = 0 end |
Instance Attribute Details
#databases ⇒ Object (readonly)
Returns the value of attribute databases.
8 9 10 |
# File 'lib/berl/database_wizard.rb', line 8 def databases @databases end |
Instance Method Details
#initialize_num_of_databases(num_of_databases) ⇒ Object
15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 |
# File 'lib/berl/database_wizard.rb', line 15 def initialize_num_of_databases(num_of_databases) database_connection_string_tpl = ENV["PARALLELE_DATABASE_URL_TEMPLATE"] if database_connection_string_tpl.nil? database_connection_string_tpl = "mysql://root:root_password@db/sylius_%s?charset=utf8mb4" end Parallel.each(1..num_of_databases, in_processes: 4, finish: method(:handle_finish)) do |i| database_connection_string = sprintf(database_connection_string_tpl, i) setup_db_cmd = build_setup_db_cmd(database_connection_string) Open3.popen3(setup_db_cmd) do |_, stdout, stderr, wait_thr| result = {} result['status'] = wait_thr.value == 0 ? 'success' : 'fail' result['output'] = [] result['output'].push(*stdout.readlines) result['output'].push(*stderr.readlines) result['database_connection_string'] = database_connection_string result end end end |