馃悩 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

  1. ¿Qu茅 es psql-backup?
  2. Caracter铆sticas principales
  3. Instalaci贸n v铆a Composer
  4. ¿C贸mo se usa?
  5. Detalles t茅cnicos
  6. Descarga y restauraci贸n
  7. 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 y commit.

馃摜 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

Entradas populares