module DBSetup
this file is part of manqod manqod is distributed under the CDDL licence the author of manqod is Dobai-Pataky Balint(dpblnt@gmail.com)
Public Instance Methods
check_sql_db(conn_name)
click to toggle source
# File lib/DBSetup.rb, line 46 def check_sql_db(conn_name) begin conn=@conns[conn_name] require 'DrbDB/MyMultiSQL/mysql-ruby.rb' sql=MySQL.new(conn['sql_host'],conn['sql_user'],conn['sql_password'],conn['sql_db']) sql.close rescue => err eerror("#{err} #{err.backtrace.join("\n\t")}") raise "#{err}" end end
create_conn(conn_name)
click to toggle source
# File lib/DBSetup.rb, line 28 def create_conn(conn_name) @conns[conn_name]=Hash.new save_conns end
create_sql_db_and_perms(conn_name,su,sup)
click to toggle source
# File lib/DBSetup.rb, line 58 def create_sql_db_and_perms(conn_name,su,sup) begin conn=@conns[conn_name] require 'DrbDB/MyMultiSQL/mysql-ruby.rb' sql=MySQL.new(conn['sql_host'],su,sup,nil) sql.query("drop database if exists `#{conn['sql_db']}`") sql.query("create database `#{conn['sql_db']}`") begin sql.query("create user '#{conn['sql_user']}' identified by '#{conn['sql_password']}'") rescue =>e einfo("failed to create user '#{conn['sql_user']}':#{e}") end sql.query("grant all privileges on #{conn['sql_db']}.* to '#{conn['sql_user']}'") sql.query("flush privileges") # conn['sql_user'],conn['sql_password'],conn['sql_db']) sql.close rescue => err eerror("#{err} #{err.backtrace.join("\n\t")}") raise "#{err}" end end
load_conns()
click to toggle source
# File lib/DBSetup.rb, line 6 def load_conns einfo("loading server connections") begin f=File.new(@connections_conf) @conns=Marshal.load(f.read) f.close rescue =>err ewarn("can't load config: #{@connections_conf}\n#{err}") end end
populate_manqod_db(conn_name,structure_only=false)
click to toggle source
# File lib/DBSetup.rb, line 80 def populate_manqod_db(conn_name,structure_only=false) begin conn=@conns[conn_name] require 'DrbDB/MyMultiSQL/mysql-ruby.rb' sql=MySQL.new(conn['sql_host'],conn['sql_user'],conn['sql_password'],conn['sql_db']) filename=structure_only ? "manqod_structure.sql" : "manqod.sql" file=File.open(File::expand_path(File.join(File.join(@path,"doc"),filename)),"r:binary") while q=file.gets(";\n") qq=q.gsub("\n","") sql.query(qq) if q.length>5 end file.close sql.close rescue =>err eerror("#{err} #{err.backtrace.join("\n\t")}") raise "#{err}" end end
remove_conn(conn_name)
click to toggle source
# File lib/DBSetup.rb, line 33 def remove_conn(conn_name) free_conn(conn_name) @conns.delete(conn_name) save_conns end
save_conns()
click to toggle source
# File lib/DBSetup.rb, line 16 def save_conns einfo("saving server connections") begin f=File.new(@connections_conf,"w+") f.write(Marshal.dump(@conns)) rescue =>err ewarn("can't write config: #{@connections_conf}\n{err}") ensure f.close end end
set_conn_variables(conn_name,conn_vars)
click to toggle source
# File lib/DBSetup.rb, line 39 def set_conn_variables(conn_name,conn_vars) conn_vars.each_pair{|var,val| @conns[conn_name][var]=val } save_conns end