class DbHelper
Public Class Methods
dump!(options={})
click to toggle source
# File lib/db_helper.rb, line 34 def self.dump!(options={}) @db_config.keys.each do |env| if ((options[:branch]==:all) || env.to_s.start_with?(options[:branch].to_s)) param = @db_config[env] dumpname = options[:file] dumpname = File.join([@dump_store, dumpname]) unless options[:relative] p "dump <#{env}> to file: #{dumpname}" # pp param system " PGPASSWORD='#{param[:password]}' pg_dump -U #{param[:username]} -h #{param[:host]} #{param[:database]} > #{dumpname} " end end end
fork!(options={})
click to toggle source
# File lib/db_helper.rb, line 50 def self.fork!(options={}) dumps = {} @db_config.keys.each do |env| if ((options[:branch]==:all) || env.to_s.start_with?(options[:branch].to_s)) param = @db_config[env] timestamp = Time.now.strftime('%Y%m%dT%H%M%S%z') dumps[env] = File.join([@dump_store, "#{param[:database]}_#{timestamp}.sql"]) p "dump <#{env}> to file: #{dumps[env]}" # pp param system " PGPASSWORD='#{param[:password]}' pg_dump -U #{param[:username]} -h #{param[:host]} #{param[:database]} > #{dumps[env]} " new_db_name = options[:name] + param[:database].gsub(/.+?(_db)?(_test)?(_db)?/i, '\1\2\3') @db_config[env][:database] = new_db_name end end p "All backups created!" save_db_config! @db_config.keys.each do |env| if ((options[:branch]==:all) || env.to_s.start_with?(options[:branch].to_s)) param = @db_config[env] p "load <#{env}> from file: #{dumps[env]}" # pp param system "RAILS_ENV=#{env} bundle exec rake db:drop" system "RAILS_ENV=#{env} bundle exec rake db:create" system "RAILS_ENV=#{env} bundle exec rake db:migrate" system " PGPASSWORD='#{param[:password]}' psql -U #{param[:username]} -h #{param[:host]} #{param[:database]} < #{dumps[env]} " end end end
get_configs()
click to toggle source
# File lib/db_helper.rb, line 9 def self.get_configs() @working_dir = Dir.pwd @sysdir = File.expand_path(File.join(File.dirname(__FILE__), '..')) unless File.exists?(File.join(@sysdir, 'config.yml')) p "No config file. Creating default one." FileUtils.cp(File.join(@sysdir, 'config.yml.sample'), File.join(@sysdir, 'config.yml')) p "Please correct your config file at:" p "#{File.join(@sysdir, 'config.yml')}" end @config = get_hash_file File.join(@sysdir, 'config.yml') @db_yml_file = @config[:db_yml_file] @db_sample_file = @config[:db_sample_file] @dump_store = @config[:dump_store] @db_config = get_hash_file File.join(@working_dir, @db_yml_file) # pp @config # pp @db_config end
load!(options={})
click to toggle source
# File lib/db_helper.rb, line 88 def self.load!(options={}) @db_config.keys.each do |env| if ((options[:branch]==:all) || env.to_s.start_with?(options[:branch].to_s)) param = @db_config[env] dumpname = options[:file] dumpname = File.join([@dump_store, dumpname]) unless options[:relative] p "load <#{env}> from file: #{dumpname}" # pp param if options[:clean] system "bundle exec rake db:drop" system "bundle exec rake db:create" system "bundle exec rake db:migrate" end system " PGPASSWORD='#{param[:password]}' psql -U #{param[:username]} -h #{param[:host]} #{param[:database]} < #{dumpname} " end end end
save_db_config!()
click to toggle source
# File lib/db_helper.rb, line 30 def self.save_db_config!() put_hash_file File.join(@working_dir, @db_yml_file), @db_config end