Commit 7d617038d64d41cca34b1c36b4e2f99a3373e97a
1 parent
9c497c0b
Exists in
master
and in
29 other branches
backup: make tasks rails_env aware
Showing
1 changed file
with
8 additions
and
6 deletions
Show diff stats
lib/tasks/backup.rake
@@ -18,14 +18,15 @@ backup_dirs = [ | @@ -18,14 +18,15 @@ backup_dirs = [ | ||
18 | desc "Creates a backup of the database and uploaded files" | 18 | desc "Creates a backup of the database and uploaded files" |
19 | task :backup => :check_backup_support do | 19 | task :backup => :check_backup_support do |
20 | dirs = backup_dirs.select { |d| File.exists?(d) } | 20 | dirs = backup_dirs.select { |d| File.exists?(d) } |
21 | + rails_env = ENV["RAILS_ENV"] || 'production' | ||
21 | 22 | ||
22 | backup_name = Time.now.strftime('%Y-%m-%d-%R') | 23 | backup_name = Time.now.strftime('%Y-%m-%d-%R') |
23 | backup_file = File.join('tmp/backup', backup_name) + '.tar.gz' | 24 | backup_file = File.join('tmp/backup', backup_name) + '.tar.gz' |
24 | mkdir_p 'tmp/backup' | 25 | mkdir_p 'tmp/backup' |
25 | dump = File.join('tmp/backup', backup_name) + '.sql' | 26 | dump = File.join('tmp/backup', backup_name) + '.sql' |
26 | 27 | ||
27 | - database = $config['production']['database'] | ||
28 | - host = $config['production']['host'] | 28 | + database = $config[rails_env]['database'] |
29 | + host = $config[rails_env]['host'] | ||
29 | host = host && "-h #{host}" || "" | 30 | host = host && "-h #{host}" || "" |
30 | sh "pg_dump #{host} #{database} > #{dump}" | 31 | sh "pg_dump #{host} #{database} > #{dump}" |
31 | 32 | ||
@@ -52,6 +53,7 @@ end | @@ -52,6 +53,7 @@ end | ||
52 | desc "Restores a backup created previousy with \`rake backup\`" | 53 | desc "Restores a backup created previousy with \`rake backup\`" |
53 | task :restore => :check_backup_support do | 54 | task :restore => :check_backup_support do |
54 | backup = ENV["BACKUP"] | 55 | backup = ENV["BACKUP"] |
56 | + rails_env = ENV["RAILS_ENV"] || 'production' | ||
55 | unless backup | 57 | unless backup |
56 | puts "usage: rake restore BACKUP=/path/to/backup" | 58 | puts "usage: rake restore BACKUP=/path/to/backup" |
57 | exit 1 | 59 | exit 1 |
@@ -81,9 +83,9 @@ task :restore => :check_backup_support do | @@ -81,9 +83,9 @@ task :restore => :check_backup_support do | ||
81 | end | 83 | end |
82 | dump = dumps.first | 84 | dump = dumps.first |
83 | 85 | ||
84 | - database = $config['production']['database'] | ||
85 | - username = $config['production']['username'] | ||
86 | - host = $config['production']['host'] | 86 | + database = $config[rails_env]['database'] |
87 | + username = $config[rails_env]['username'] | ||
88 | + host = $config[rails_env]['host'] | ||
87 | host = host && "-h #{host}" || "" | 89 | host = host && "-h #{host}" || "" |
88 | 90 | ||
89 | puts "WARNING: backups should be restored to an empty database, otherwise" | 91 | puts "WARNING: backups should be restored to an empty database, otherwise" |
@@ -102,7 +104,7 @@ task :restore => :check_backup_support do | @@ -102,7 +104,7 @@ task :restore => :check_backup_support do | ||
102 | end | 104 | end |
103 | 105 | ||
104 | sh 'tar', 'xaf', backup | 106 | sh 'tar', 'xaf', backup |
105 | - sh "rails dbconsole production < #{dump}" | 107 | + sh "rails dbconsole #{rails_env} < #{dump}" |
106 | rm_f dump | 108 | rm_f dump |
107 | 109 | ||
108 | puts "****************************************************" | 110 | puts "****************************************************" |