- Notifications
You must be signed in to change notification settings - Fork 49
/
Copy pathrestore.rake
47 lines (40 loc) · 1.11 KB
/
restore.rake
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
namespace:dbdo
taskrestore: [
'db:download:generate',
'db:download:latest',
'db:drop',
'db:create',
'db:download:load',
'db:download:clean',
'db:migrate'
]
namespace:downloaddo
defdb_dump_file
"coderwall-production.dump"
end
desc'Create a production database backup'
task:generatedo
Bundler.with_clean_envdo
cmd="heroku pg:backups capture DATABASE_URL --app coderwall-next"
sh(cmd)
end
end
desc'Download latest database backup'
task:latestdo
unlessFile.exists?(db_dump_file)
Bundler.with_clean_envdo
sh("curl `heroku pg:backups public-url --app coderwall-next` -o #{db_dump_file}")
end
end
end
desc'Load local database backup into dev'
taskload: :environmentdo
raise'local dump not found'unlessFile.exists?(db_dump_file)
puts'Loading Production database locally'
`pg_restore --verbose --clean --no-acl --no-owner -h localhost -d coderwall-next_development #{db_dump_file}`
end
task:cleando
`rm #{db_dump_file}`
end
end
end