Cómo restaurar un backup de producción en una app de desarrollo (Heroku)¶
Esta guía explica cómo tomar un backup de la base de datos de producción y restaurarlo en una aplicación de desarrollo usando la CLI de Heroku. El objetivo es contar con datos reales en desarrollo de forma controlada, sin correr el riesgo de afectar la base de datos equivocada.
El sentido del flujo importa
El backup sale de producción y entra en desarrollo. Nunca al revés. Restaurar sobre la base de datos equivocada sobrescribe los datos existentes de forma irreversible. Verifica el nombre exacto de cada app antes de ejecutar cualquier comando.
Requisitos previos¶
- La CLI de Heroku instalada
y con sesión iniciada (
heroku login). - Permisos sobre ambas aplicaciones: la de producción (origen) y la de desarrollo (destino).
- Nombres exactos de las apps. En esta guía se usan como ejemplo:
- Producción (origen):
legalys-platform-prod - Desarrollo (destino):
legalys-platform-dev
- Producción (origen):
Video del procedimiento¶
Referencia en video
El procedimiento completo está en el reproductor de arriba, o puedes abrirlo directamente en Loom. Cada paso enlaza al minuto correspondiente.
Pasos¶
1. Generar un backup en producción — 0:41¶

- Confirma el nombre exacto de la app de producción (origen), por ejemplo
legalys-platform-prod. -
Genera un backup nuevo:
-
Al terminar, el comando devuelve el ID del backup (por ejemplo,
b427). Anótalo: lo usarás en los siguientes pasos.
2. Listar los backups disponibles — 1:44¶

Consulta los backups existentes de la app de producción (incluye los automáticos):
Identifica el backup que quieres restaurar —normalmente el más reciente, por
ejemplo b427.
3. Obtener la URL de descarga del backup — 2:33¶

Genera una URL temporal y segura al dump del backup:
No copies la URL a mano
La URL caduca en poco tiempo. En lugar de copiarla, encadénala directamente dentro del comando de restauración (ver paso 4). Así evitas errores y que la URL expire.
4. Restaurar el backup en la app de desarrollo — 3:19¶

Restaura hacia la app de desarrollo (destino), apuntando a la variable de
entorno correcta (normalmente DATABASE_URL). Encadena la URL del paso 3 para no
copiarla manualmente:
heroku pg:backups:restore \
"$(heroku pg:backups:url b427 --app legalys-platform-prod)" \
DATABASE_URL --app legalys-platform-dev
Revisa el destino
Confirma que --app apunta a la app de desarrollo (legalys-platform-dev)
y no a producción. Este comando sobrescribe la base de datos destino.
5. Confirmar la ejecución — 4:09¶

- Heroku pedirá confirmación (escribir el nombre de la app destino). Complétala y presiona Enter para iniciar la restauración.
-
Para hacerlo en una sola línea sin el diálogo interactivo, añade la bandera de confirmación:
6. Verificar que la restauración terminó bien — 5:08¶

- Espera a que el proceso termine (unos segundos o minutos según el tamaño de la base de datos).
- Verifica que no haya errores en la salida del comando.
- Confirma que la base de datos de desarrollo ya contiene los datos esperados (por ejemplo, entrando a la app o consultando algunas tablas).
Notas importantes¶
- No confundas origen y destino: el backup sale de producción y se restaura en desarrollo.
- Verifica el nombre exacto de cada app antes de ejecutar cualquier comando.
- La restauración sobrescribe la base de datos destino: cuidado con la instancia objetivo.
- La URL del backup es temporal; úsala dentro del mismo flujo de restauración.
- Confirma siempre antes de ejecutar un comando que modifica datos existentes.
Consejos de eficiencia¶
- Encadena los comandos (
$(...)) para no copiar la URL a mano. - Mantén una convención de nombres clara para distinguir
prod,stagingydev. - Si el proceso se repite con frecuencia, considera automatizarlo (script o integración continua).
- Registra qué backup se restauró (por ejemplo,
b427) para auditoría y seguimiento. - Antes de restaurar, valida que el backup sea el correcto para evitar retrabajo.