Sha256: 11d26b49c774cf678c018a44dd40aef6f5951958e9518aaf0c48c4880a02a5db
Contents?: true
Size: 1.7 KB
Versions: 1
Compression:
Stored size: 1.7 KB
Contents
module Wordmove class Doctor class Mysql attr_reader :config, :logger def initialize(movefile_name = nil, movefile_dir = '.') @config = Wordmove::Movefile.new.fetch(movefile_name, movefile_dir)["local"]["database"] @logger = Logger.new(STDOUT).tap { |l| l.level = Logger::INFO } end def check! logger.task "Checking local database commands and connection" 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.0 | lib/wordmove/doctor/mysql.rb |