https://github.com/julio101290/psql-backup
PostgreSQLBackupManager es una librería PHP para realizar respaldos y restauraciones de bases de datos PostgreSQL de manera sencilla y confiable.
https://github.com/julio101290/psql-backup
codeigniter codeigniter4 postgresql sql
Last synced: 5 months ago
JSON representation
PostgreSQLBackupManager es una librería PHP para realizar respaldos y restauraciones de bases de datos PostgreSQL de manera sencilla y confiable.
- Host: GitHub
- URL: https://github.com/julio101290/psql-backup
- Owner: julio101290
- License: mit
- Created: 2025-05-30T23:34:49.000Z (7 months ago)
- Default Branch: main
- Last Pushed: 2025-06-02T19:14:37.000Z (7 months ago)
- Last Synced: 2025-06-18T02:45:23.159Z (6 months ago)
- Topics: codeigniter, codeigniter4, postgresql, sql
- Language: PHP
- Homepage: https://shalom-now.blogspot.com/
- Size: 19.5 KB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# 🐘 PostgreSQL Backup Manager
[](https://github.com/julio101290/psql-backup/releases)
[](LICENSE)
[](https://www.php.net/)
[](https://www.postgresql.org/)
**PostgreSQL Backup Manager** es una biblioteca PHP moderna para crear y restaurar respaldos de bases de datos PostgreSQL. Perfecta para entornos donde `pg_dump` no está disponible, pero también lo aprovecha si está presente.
---
## 📚 Tabla de Contenido
- [🚀 Características](#-características)
- [🛠️ Requisitos](#️-requisitos)
- [📦 Instalación](#-instalación)
- [⚙️ Uso](#️-uso)
- [Inicialización](#inicialización)
- [Crear un respaldo](#crear-un-respaldo)
- [Restaurar un respaldo](#restaurar-un-respaldo)
- [🔌 Ejemplo con CodeIgniter 4](#-ejemplo-con-codeigniter-4)
- [🧪 Restauración desde archivo ZIP](#-restauración-desde-archivo-zip)
- [🧾 Licencia](#-licencia)
- [🙌 Agradecimientos](#-agradecimientos)
---
## 🚀 Características
✅ Detección automática de `pg_dump`
✅ Soporte para exportaciones comprimidas `.zip` (solo PostgreSQL)
✅ Soporte completo para `PDO`
✅ Compatible con cualquier framework PHP (especialmente CodeIgniter 4)
✅ Restauración rápida y confiable
---
## 🛠️ Requisitos
- PHP 7.3 o superior
- Extensión `PDO` habilitada
- PostgreSQL 9.6 o superior
- Opcional: `pg_dump` en el sistema para respaldos más eficientes
---
## 📦 Instalación
Instala el paquete usando Composer:
```bash
composer require julio101290/postgresql-backup-manager
```
---
## ⚙️ Uso
### Inicialización
```php
use PostgresqlBackupManager\PostgreSQLBackup;
$pdo = new PDO("pgsql:host=localhost;port=5432;dbname=mi_base", "usuario", "contraseña");
$backup = new PostgreSQLBackup(
$pdo,
'mi_base',
'usuario',
'contraseña',
'localhost',
5432,
__DIR__ . '/backups'
);
```
---
### Crear un respaldo
```php
$archivoSQL = $backup->backup(); // Sin compresión
$archivoZip = $backup->backup(true); // Con compresión ZIP
```
---
### Restaurar un respaldo
```php
$backup->restore('/ruta/al/respaldo.sql');
$backup->restore('/ruta/al/respaldo.sql.zip'); // Si está comprimido
```
---
## 🔌 Ejemplo con CodeIgniter 4
```php
public function restaurar($uuid) {
$info = $this->backups->where('uuid', $uuid)->first();
$config = config('Database')->default;
$pdo = new \PDO("pgsql:host={$config['hostname']};port={$config['port']};dbname={$config['database']}",
$config['username'], $config['password']);
$backup = new PostgreSQLBackup(
$pdo,
$config['database'],
$config['username'],
$config['password'],
$config['hostname'],
$config['port']
);
try {
$backup->restore($info['SQLFile']);
return $this->respondCreated(true, lang("backups.msg.restored"));
} catch (Exception $e) {
return $this->failServerError('Error al restaurar: ' . $e->getMessage());
}
}
```
---
## 🧪 Restauración desde archivo ZIP
Si el respaldo fue generado con compresión (`$backup->backup(true);`), se creará un archivo `.sql.zip`. La clase `restore()` detecta automáticamente si es un `.zip` y lo descomprime para ejecutar el contenido.
> 📌 Asegúrate de que el archivo `.zip` solo contenga un `.sql`.
---
## 🧾 Licencia
Este proyecto está bajo la licencia MIT. Consulta el archivo [LICENSE](LICENSE) para más detalles.
---
## 🙌 Agradecimientos
🔧 Basado en la implementación original de [Ramazan Çetinkaya](https://github.com/ramazancetinkaya/mysql-backup)
🛠️ Adaptado y mejorado por [julio101290](https://github.com/julio101290)
---