Sha256: 42f425458a6446fa6f4d0c52c06a856f93e3571da52dce512f53ec797ddd8836
Contents?: true
Size: 1.87 KB
Versions: 1
Compression:
Stored size: 1.87 KB
Contents
module Wordmove class Doctor class Mysql attr_reader :config, :logger def initialize(movefile_name = nil, movefile_dir = '.') @logger = Logger.new(STDOUT).tap { |l| l.level = Logger::INFO } begin @config = Wordmove::Movefile.new.fetch(movefile_name, movefile_dir)["local"]["database"] rescue Psych::SyntaxError return end end def check! logger.task "Checking local database commands and connection" return logger.error "Can't connect to mysql using your movefile.yml" if config.nil? mysql_client_doctor mysqldump_doctor mysql_server_doctor end private def mysql_client_doctor if system("which mysql", out: File::NULL) logger.success "`mysql` command is in $PATH" else logger.error "`mysql` command is not in $PATH" end end def mysqldump_doctor if system("which mysqldump", out: File::NULL) logger.success "`mysqldump` command is in $PATH" else logger.error "`mysqldump` command is not in $PATH" end end def mysql_server_doctor command = ["mysql"] command << "-u #{config['user']}" command << "-p#{config['password']}" unless config['password'].blank? command << "-h #{config['host']}" command << "-e'QUIT'" command = command.join(" ") if system(command, out: File::NULL, err: File::NULL) logger.success "Successfully connected to the database" else logger.error <<~LONG We can't connect to the database using credentials specified in the Movefile. Double check them or try to debug your system configuration. The command used to test was: #{command} LONG end end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
wordmove-2.3.1 | lib/wordmove/doctor/mysql.rb |