Class: DbReplicator::Importer

Inherits:
Object
  • Object
show all
Includes:
ExecCommand
Defined in:
lib/db_replicator/importer.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Methods included from ExecCommand

#exec_cmd

Constructor Details

#initialize(to_db_env) ⇒ Importer

Returns a new instance of Importer.



6
7
8
9
10
11
12
13
14
# File 'lib/db_replicator/importer.rb', line 6

def initialize(to_db_env)
  @to_db_env = to_db_env
  @to_db_configs = DbReplicator.db_configs(@to_db_env)
  if @to_db_configs['adapter'] == 'sqlite3'
    set_tmp_db_configs
  else
    @tmp_db_configs = nil
  end
end

Instance Attribute Details

#tmp_db_configsObject

Returns the value of attribute tmp_db_configs.



5
6
7
# File 'lib/db_replicator/importer.rb', line 5

def tmp_db_configs
  @tmp_db_configs
end

#to_db_envObject

Returns the value of attribute to_db_env.



5
6
7
# File 'lib/db_replicator/importer.rb', line 5

def to_db_env
  @to_db_env
end

Instance Method Details

#import_db!Object



16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
# File 'lib/db_replicator/importer.rb', line 16

def import_db!
  DbReplicator.document_action 'Executing db:drop && db:create to get a fresh database', 'Fresh database created.' do
    create_fresh_db
  end
  DbReplicator.document_action "Importing mysql dump to #{@to_db_configs['database']} database", 'Import complete.' do
    if @tmp_db_configs
      DbReplicator.document_action 'Transfering db to sqlite3', 'Transfer complete' do
        convert_sql_dump_and_import
      end
    else
      puts "mysql -u root --database=#{@to_db_configs['database']} < #{DbReplicator.dump_file}"
      exec_cmd "mysql -u root --database=#{@to_db_configs['database']} < #{DbReplicator.dump_file}"
    end
  end
  DbReplicator.document_action 'Executing db:migrate to update database Just in case their are pending migrations', 'Migrate complete.' do
    exec_cmd 'bundle exec rake db:migrate'
  end
end