Module: DatabaseUtils
- Defined in:
- lib/buzzcore/database_utils.rb
Class Method Summary collapse
- .clear_database(aDbDetails) ⇒ Object
- .create_database(aDbDetails, aDatabase = nil) ⇒ Object
- .database_exists(aDbDetails, aDatabase = nil) ⇒ Object
- .ensure_empty_database(aDbDetails, aDatabase = nil) ⇒ Object
- .execute_sql_file(filename, aUser = nil, aPassword = nil) ⇒ Object
- .load_database(aDbDetails, aSqlFile) ⇒ Object
- .save_database(aDbDetails, aSqlFile) ⇒ Object
Class Method Details
.clear_database(aDbDetails) ⇒ Object
35 36 37 |
# File 'lib/buzzcore/database_utils.rb', line 35 def self.clear_database(aDbDetails) response = POpen4::shell("mysqldump -u #{aDbDetails[:username]} -p#{aDbDetails[:password]} --add-drop-table --no-data #{aDbDetails[:database]} | grep ^DROP | mysql -u #{aDbDetails[:username]} -p#{aDbDetails[:password]} #{aDbDetails[:database]}") end |
.create_database(aDbDetails, aDatabase = nil) ⇒ Object
39 40 41 42 43 |
# File 'lib/buzzcore/database_utils.rb', line 39 def self.create_database(aDbDetails,aDatabase=nil) aDbDetails[:database] = aDatabase if aDatabase return false if !aDbDetails[:database] response = POpen4::shell("mysqladmin -u #{aDbDetails[:username]} -p#{aDbDetails[:password]} create #{aDbDetails[:database]}") end |
.database_exists(aDbDetails, aDatabase = nil) ⇒ Object
www.cyberciti.biz/faq/how-do-i-empty-mysql-database/
drop all tables : mysqldump -uusername -ppassword -hhost \ –add-drop-table –no-data database | grep ^DROP | \ mysql -uusername -ppassword -hhost database
23 24 25 26 27 28 29 30 31 32 33 |
# File 'lib/buzzcore/database_utils.rb', line 23 def self.database_exists(aDbDetails,aDatabase=nil) aDbDetails[:database] = aDatabase if aDatabase return false if !aDbDetails[:database] response = POpen4::shell("mysql -u #{aDbDetails[:username]} -p#{aDbDetails[:password]} -e 'use #{aDbDetails[:database]}'") do |r| if r[:stderr] && r[:stderr].index("ERROR 1049 ")==0 # Unknown database r[:exitcode] = 0 return false end end return (response && response[:exitcode]==0) end |
.ensure_empty_database(aDbDetails, aDatabase = nil) ⇒ Object
45 46 47 48 49 50 51 52 |
# File 'lib/buzzcore/database_utils.rb', line 45 def self.ensure_empty_database(aDbDetails,aDatabase=nil) aDbDetails[:database] = aDatabase if aDatabase if database_exists(aDbDetails) clear_database(aDbDetails) else create_database(aDbDetails) end end |
.execute_sql_file(filename, aUser = nil, aPassword = nil) ⇒ Object
4 5 6 7 8 9 10 11 12 |
# File 'lib/buzzcore/database_utils.rb', line 4 def self.execute_sql_file(filename,aUser=nil,aPassword=nil) conf = ActiveRecord::Base.configurations[RAILS_ENV] pw = aPassword || conf['password'].to_s || '' user = aUser || conf['username'].to_s || '' cmd_line = "mysql -h #{conf['host']} -D #{conf['database']} #{user.empty? ? '' : '-u '+user} #{pw.empty? ? '' : '-p'+pw} <#{filename}" if !system(cmd_line) raise Exception, "Error executing "+cmd_line end end |
.load_database(aDbDetails, aSqlFile) ⇒ Object
54 55 56 57 |
# File 'lib/buzzcore/database_utils.rb', line 54 def self.load_database(aDbDetails,aSqlFile) ensure_empty_database(aDbDetails) response = POpen4::shell("mysql -u #{aDbDetails[:username]} -p#{aDbDetails[:password]} #{aDbDetails[:database]} < #{aSqlFile}") end |
.save_database(aDbDetails, aSqlFile) ⇒ Object
59 60 61 |
# File 'lib/buzzcore/database_utils.rb', line 59 def self.save_database(aDbDetails,aSqlFile) response = POpen4::shell("mysqldump --user=#{aDbDetails[:username]} --password=#{aDbDetails[:password]} --skip-extended-insert #{aDbDetails[:database]} > #{aSqlFile}") end |