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 😀.

Comenta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *