🐘 Respaldos con Estilo: ¡PostgreSQL no llora, hace backups!
🐐 Respaldos con Estilo: ¡PostgreSQL no llora, hace backups!
¿Apoco no te ha pasado, plebes desarrolladores, que de repente andas bien quitado de la pena, programando sabroso, y de la nada: ¡pum! se cae la base de datos! 😱
Y ahí andas tú, como si fueras el Comandante Ramiro, buscando a los perdidos: pg_dump
, pg_restore
, y todos los santos comandos que ni los mismos dioses de PostgreSQL entienden.
¡Ya estuvo bueno de eso!
Hoy les vengo a presentar un proyecto que está más chilo que una carne asada en la playa de Altata: psql-backup
, una librería PHP bien perrona para hacer respaldos y restauraciones de PostgreSQL sin hacerte bolas con la terminal.
🗭 Tabla de Contenidos
- ¿Qué es
psql-backup
? - Características principales
- Instalación vía Composer
- ¿Cómo se usa?
- Detalles técnicos
- Descarga y restauración
- Licencia
📦 ¿Qué es psql-backup
?
Es una librería PHP escrita por julio101290 (alias: "el que respalda y no se raja") que permite realizar respaldos y restauraciones de bases de datos PostgreSQL, todo desde PHP. También incluye detección automática de si tienes o no el comando pg_dump
instalado. Si no lo tienes, pues no pasa nada: ¡el respaldo se hace a puro PHP!
✨ Características principales
- Respaldo usando
pg_dump
(si está disponible) - Modo alternativo 100% PHP (sin necesidad del binario)
- Compresión ZIP opcional solo para PostgreSQL
- Clase
PostgreSQLBackup
lista para usar - Compatible con proyectos CodeIgniter 4
- Soporte multibase de datos: MariaDB y PostgreSQL
⚙️ Instalación vía Composer
Agrega el paquete a tu proyecto:
composer require julio101290/psql-backup
Luego importa la clase donde la vayas a usar:
use PostgresqlBackupManager\PostgreSQLBackup;
🚀 ¿Cómo se usa?
Fácil como el ceviche sinaloense. Aquí un ejemplo para respaldar:
\$pdo = new PDO("pgsql:host=localhost;port=5432;dbname=tu_basedatos", "usuario", "contrasena");
\$backup = new PostgreSQLBackup(\$pdo);
\$backup->backup("/ruta/a/backup.sql", true); // true para usar ZIP
Y para restaurar:
\$backup->restore("/ruta/a/backup.zip");
📃 Detalles técnicos
- El archivo ZIP contiene el .sql plano.
- Se descomprime automáticamente al restaurar.
- Las sentencias SQL se separan de forma segura por punto y coma.
- Control de transacciones usando
beginTransaction
ycommit
.
📥 Descarga y Restauración
Incluye un método en CodeIgniter para que descargues el respaldo, y si es PostgreSQL, lo ofrece en .zip. Ejemplo:
public function downloadBackup(\$uuid) {
// Obtener info desde la BD
\$dataBackup = \$this->backups->select("SQLFile,created_at")
->where("uuid", \$uuid)->first();
\$sqlPath = \$dataBackup["SQLFile"];
if (pathinfo(\$sqlPath, PATHINFO_EXTENSION) === 'zip') {
return $this->response
->download(\$sqlPath, null)
->setFileName("backup.zip");
}
return $this->response
->download(\$sqlPath, null)
->setFileName("backup.sql");
}
📄 Licencia
Este paquete está bajo licencia MIT. Puedes hacerle lo que gustes: clonarlo, modificarlo, hacerle una carnita asada, o incluso presumirlo en el café Internet.
¡Contribuciones bienvenidas! Si encuentras errores o quieres agregar funciones nuevas, jálate con un pull request.
✨ Final Feliz
En Sinaloa hacemos bien las cosas, y este paquete es prueba de ello. ¡Haz tus respaldos como todo un profesional y deja de sufrir como mariachi sin tequila!
¡Saluditos de parte del buen julio101920!
Comentarios
Publicar un comentario