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