Saltar al contenido
Facturador

Migración Integral del Proyecto Facturador

Guía para transferir el sistema completo, incluyendo bases de datos multi-tenant, certificados digitales y almacenamiento físico de comprobantes entre servidores independientes.


📦 Fase 1: Preparación en Servidor A (Origen)

1. Respaldo de Archivos Físicos

# Comprimir la carpeta del facturador o su directorio storage
cd /ruta/facturador
tar -czvf storage_backup.tar.gz storage/app/

2. Extracción de Registros de Tenants

Conéctese a MariaDB e identifique la relación de clientes y dominios registrados:

USE system;
SELECT c.number, c.name, h.fqdn, c.email 
FROM clients c 
JOIN hostnames h ON c.hostname_id = h.id;

3. Volcado de Bases de Datos

Genere el dump de la base central y de cada tenant:

docker exec [contenedor_mariadb] mysqldump -u root -p[clave] system > system.sql
docker exec [contenedor_mariadb] mysqldump -u root -p[clave] [tenancy_empresa] > [tenancy_empresa].sql

4. Transferencia al Servidor B

Transfiera los respaldos vía SCP o rsync:

scp storage_backup.tar.gz *.sql usuario@ip_servidor_b:/root/backups/

🚀 Fase 2: Restauración en Servidor B (Destino)

1. Despliegue Limpio del Facturador

Instale la aplicación en el nuevo servidor con la misma versión base del sistema.

2. Restauración de Archivos de Storage

Descomprima los archivos resguardados en la ruta correspondiente:

cd /ruta/nuevo_facturador/storage/app/
tar -xzvf /root/backups/storage_backup.tar.gz
chmod -R 775 storage bootstrap/cache

3. Restauración de Bases de Datos

Restaure la base de datos central y cada tenant:

cat system.sql | docker exec -i [contenedor_mariadb] mysql -u root -p[clave] system
cat [tenancy_empresa].sql | docker exec -i [contenedor_mariadb] mysql -u root -p[clave] [tenancy_empresa]

4. Verificación de Permisos y Caché

docker exec -ti [contenedor_fpm] php artisan optimize:clear