posts/ew7aX7BvrbsdjRwmy4RHvtpkBS5RZIeFzlcvMKgU.png

Laravel DB Snapshots: versiona y restaura tu base de datos fácilmente

Aprende a usar Laravel DB Snapshots de Spatie para crear, restaurar y controlar snapshots de tu base de datos de forma segura.

Snapshots de Base de Datos en Laravel

Versiona, restaura y compara tu base de datos con Spatie Laravel DB Snapshots

Introducción

Cuando trabajas en proyectos Laravel medianos o grandes —especialmente en producción, staging o entornos multi-tenant— cometer un error en la base de datos puede costar caro.

Spatie Laravel DB Snapshots es un paquete que permite crear snapshots (instantáneas) de tu base de datos, restaurarlas fácilmente y llevar control de cambios de una forma mucho más segura que los backups tradicionales.

En este artículo te explico qué es, para qué sirve, cuándo usarlo y cómo aprovecharlo correctamente en proyectos Laravel.

¿Qué es Laravel DB Snapshots?

Laravel DB Snapshots es un paquete de Spatie que permite:

  • Crear snapshots del estado completo de la base de datos

  • Restaurar la base de datos desde un snapshot

  • Mantener un historial de estados

  • Facilitar pruebas, despliegues y rollback de datos

Es ideal para equipos, ambientes de staging, QA, testing automatizado y deploys controlados.

¿Para qué sirve realmente?

Este paquete es especialmente útil cuando:

  • Vas a ejecutar migraciones riesgosas

  • Necesitas volver a un estado exacto de datos

  • Haces pruebas destructivas en staging

  • Quieres comparar estados antes y después de cambios importantes

  • Trabajas con seeders complejos o datos reales anonimizados

Instalación del paquete

composer require spatie/laravel-db-snapshots

Publica la configuración si lo deseas:

php artisan vendor:publish --tag=db-snapshots-config

Crear un snapshot de la base de datos

php artisan snapshot:create

Esto guarda una copia completa del estado actual de la base de datos.

Puedes nombrar el snapshot:

php artisan snapshot:create before-migration

Restaurar un snapshot

php artisan snapshot:restore before-migration

⚠️ Advertencia:
Esto sobrescribe completamente la base de datos actual.

Listar snapshots disponibles

php artisan snapshot:list

Ideal para ver rápidamente qué estados tienes guardados.

Casos de uso reales

✅ Antes de una migración peligrosa

php artisan snapshot:create pre-alter-table
php artisan migrate

Si algo falla:

php artisan snapshot:restore pre-alter-table

✅ Testing con datos reales

Puedes restaurar snapshots antes de correr pruebas automatizadas para garantizar un estado consistente.

✅ Entornos de staging

Permite resetear el entorno sin depender de backups manuales o dumps externos.

Buenas prácticas de seguridad

  • No usar en producción sin respaldo

  • ✔️ Usar solo en local, staging o QA

  • ✔️ Proteger accesos a comandos artisan

  • ✔️ No exponer snapshots en repositorios

Snapshots vs Backups tradicionales

SnapshotsBackupsRápidosMás lentosIntegrados a LaravelExternosIdeales para testingIdeales para desastreVersionablesHistóricos

👉 No reemplaza backups, los complementa.

Conclusión

Laravel DB Snapshots es una herramienta poderosa cuando necesitas control, seguridad y reversibilidad sobre tu base de datos.

Si trabajas en proyectos complejos, este paquete puede ahorrarte horas de recuperación, errores humanos y dolores de cabeza.

Comparte esta publicación

0 comentarios

Únete a la conversación y comparte tu experiencia.

Dejar un comentario

Comparte dudas, propuestas o mejoras para la comunidad.