diff --git a/lib/tasks/app.rake b/lib/tasks/app.rake index 0dbd50b3707fa44f832cc5425481710f95eafdc5..926c21252b71f25e0e569d79bb84308e57777613 100644 --- a/lib/tasks/app.rake +++ b/lib/tasks/app.rake @@ -20,6 +20,26 @@ namespace :app do namespace :db do desc 'Get database from Scalingo' task :staging do + Bundler.with_unbundled_env do + # Get a new backup archive from Scalingo + # PG Addon ID from `scalingo addons` CLI command. + sh "scalingo --app #{ENV['OSUNY_STAGING_APP_NAME']} backups-create --addon #{ENV['OSUNY_STAGING_PG_ADDON_ID']}" + sh "scalingo --app #{ENV['OSUNY_STAGING_APP_NAME']} backups-download --addon #{ENV['OSUNY_STAGING_PG_ADDON_ID']} --output db/scalingo-dump.tar.gz" + + sh 'rm -f db/latest.dump' # Remove an old backup file if it exists + sh 'tar zxvf db/scalingo-dump.tar.gz -C db/' # Extract the new backup archive + sh 'rm db/scalingo-dump.tar.gz' # Remove the backup archive + sh 'mv db/*.pgsql db/latest.dump' # Rename the backup file + sh 'DISABLE_DATABASE_ENVIRONMENT_CHECK=1 bundle exec rails db:drop' + sh 'bundle exec rails db:create' + begin + sh 'pg_restore --verbose --clean --no-acl --no-owner -h localhost -U postgres -d osuny_development db/latest.dump' + rescue + 'There were some warnings or errors while restoring' + end + sh 'rails db:migrate' + sh 'rails db:seed' + end end end end