lib/gdk/registry_database_manager.rb (47 lines of code) (raw):
# frozen_string_literal: true
module GDK
class RegistryDatabaseManager
def initialize(config)
@config = config
end
def reset_registry_database
stop_runit_services
sleep(2)
start_postgresql_service
sleep(2)
drop_database('registry_dev')
recreate_database('registry_dev')
migrate_database
end
def import_registry_data
shellout(gdk_root.join('support', 'import-registry').to_s)
end
private
attr_reader :config
def gdk_root
config.gdk_root
end
def start_postgresql_service
GDK::Command::Start.new.run(['postgresql', '--quiet'])
end
def stop_runit_services
GDK::Command::Stop.new.run([])
end
def drop_database(database_name)
shellout(psql_cmd("drop database #{database_name}"))
end
def recreate_database(database_name)
shellout(psql_cmd("create database #{database_name}"))
end
def migrate_database
shellout(gdk_root.join('support', 'migrate-registry').to_s)
end
def psql_cmd(command)
GDK::Postgresql.new(config).psql_cmd(['-c'] + [command])
end
def shellout(command)
sh = Shellout.new(command, chdir: gdk_root)
sh.stream
sh.success?
end
end
end