foodsoft/script/list_databases

23 lines
772 B
Plaintext
Executable File

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