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