Este es un pequeño script Shell que uso para hacer reset de una base de datos Heroku usada por una API Rails. Ten en cuenta que el reset de la base de datos es una acción destructiva, por eso yo solo la utilizo en ambientes de desarrollo o prueba.
#!/bin/bash set -e # Hago un reset directo de la base de datos echo "Reseteando base de datos" heroku pg:reset DATABASE_URL --app my-heroku-app --confirm my-heroku-app echo "Reset completado!" echo "---" # En el caso de Rails es necesario correr las migraciones # para regenerar la estructura de la base de datos echo "Running migrations" heroku run rake db:migrate --app my-heroku-app echo "Database migrated" echo "---" # Un siguiente paso podría ser hacer un db:seed para # crear los datos iniciales. En mi caso no es necesario. # Algo como: # heroku run rake db:seed --app my-heroku-app # Puedes añadir otras instrucciones. Yo necesito generar una operación # de limpieza de algunos buckets S3, así que mi script contiene echo "Limpiando buckets S3" aws s3 rm s3://my-bucket --recursive echo "Primer bucket completado" aws s3 rm s3://my-other-bucket --recursive echo "Segundo bucket completado" echo "Reset completado!"
Este script puede ser extendido para automatizar todas la tareas necesarias durante el reseteo de tu base de datos. En realidad, como se puede ver esto es más bien un reset del ambiente porque hago un reset de la base de datos, un empty de los buckets S3 y algunas otras operaciones que no aparecen en el script porque son privadas 😀.