Class: Moose::Inventory::Cli::Db

Inherits:
Thor
  • Object
show all
Defined in:
lib/moose_inventory/cli/db.rb

Overview

Database lifecycle commands.

Instance Method Summary collapse

Instance Method Details

#backup(file) ⇒ Object



42
43
44
45
46
47
# File 'lib/moose_inventory/cli/db.rb', line 42

def backup(file)
  destination = Moose::Inventory::DB.backup(file)
  puts "Backed up database to #{destination}."
rescue Moose::Inventory::DB.exceptions[:moose] => e
  abort("ERROR: #{e.message}")
end

#doctorObject



19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
# File 'lib/moose_inventory/cli/db.rb', line 19

def doctor
  status = Moose::Inventory::DB.status
  missing = status[:tables].reject { |_name, present| present }.keys
  if missing.empty? && status[:schema_version] == status[:expected_schema_version]
    puts 'Database doctor found no issues.'
    return
  end

  puts 'Database doctor found issue(s):'
  puts "- Missing tables: #{missing.join(', ')}" unless missing.empty?
  if status[:schema_version] != status[:expected_schema_version]
    puts "- Schema version is #{status[:schema_version].inspect}; expected #{status[:expected_schema_version]}."
  end
  exit(1)
end

#migrateObject



36
37
38
39
# File 'lib/moose_inventory/cli/db.rb', line 36

def migrate
  status = Moose::Inventory::DB.migrate!
  puts "Database schema is at version #{status[:schema_version]}."
end

#statusObject



14
15
16
# File 'lib/moose_inventory/cli/db.rb', line 14

def status
  render_status(Moose::Inventory::DB.status)
end