require 'mysql2' def get_env_or_file_content(name) ENV.fetch('FOODSOFT_DB_' + name) do |full_name| file_name = ENV.fetch(full_name + '_FILE', nil) file_name ? File.read(file_name).strip : '' end end prefix = get_env_or_file_content('PREFIX') host = get_env_or_file_content('HOST') database = get_env_or_file_content('NAME') username = get_env_or_file_content('USER') password = get_env_or_file_content('PASSWORD') client = Mysql2::Client.new(host: host, database: database, username: username, password: password) escaped_prefix = client.escape(prefix) results = client.query("SELECT schema_name FROM information_schema.schemata WHERE schema_name LIKE '#{escaped_prefix}%'") results.each do |row| puts row["schema_name"][prefix.length..] end client.close