class S3Backup::Pg::Import
Attributes
database[R]
pg_database_name[R]
Public Class Methods
new(pg_database_name)
click to toggle source
# File lib/s3_backup/pg/import.rb, line 8 def initialize(pg_database_name) @pg_database_name = pg_database_name config = Rails.configuration.database_configuration @database = config[Rails.env]['database'] end
Public Instance Methods
now!()
click to toggle source
# File lib/s3_backup/pg/import.rb, line 15 def now! puts 'Setup local database ...' setup_local_database puts 'Downloading pg database ...' S3Backup::Storage::S3.new.download!(pg_database_name, Config.s3_pg_path, pg_dump_s3_file.path) umcompress_file puts "Loading data in #{database} ..." load_file clean_env puts '🍺 Done!' end
Private Instance Methods
clean_env()
click to toggle source
# File lib/s3_backup/pg/import.rb, line 55 def clean_env pg_dump_file.unlink pg_dump_s3_file.unlink end
load_file()
click to toggle source
# File lib/s3_backup/pg/import.rb, line 46 def load_file `psql -d #{database} -f #{pg_dump_file.path} 2> /dev/null` end
pg_dump_file()
click to toggle source
# File lib/s3_backup/pg/import.rb, line 33 def pg_dump_file @pg_dump_file ||= Tempfile.new(pg_database_name) end
pg_dump_s3_file()
click to toggle source
# File lib/s3_backup/pg/import.rb, line 29 def pg_dump_s3_file @pg_dump_s3_file ||= Tempfile.new(pg_database_name + '_compressed') end
setup_local_database()
click to toggle source
# File lib/s3_backup/pg/import.rb, line 50 def setup_local_database Rake::Task['db:drop'].invoke Rake::Task['db:create'].invoke end
umcompress_file()
click to toggle source
# File lib/s3_backup/pg/import.rb, line 37 def umcompress_file file = File.open(pg_dump_file.path, 'w') Zlib::GzipReader.open(pg_dump_s3_file.path) do |gz| file.write gz.read end file.close end