# Factuges Sync Proceso ETL para sincronizar datos desde una base de datos Legacy hacia MariaDB. Incluye dos modos de sincronización: - `factuges` - `verifactu` En desarrollo **no se utiliza Docker**. En producción **sí se utiliza Docker + cron**. --- # 1. Requisitos previos - Python 3.11 o superior - Git instalado - Acceso a las bases de datos necesarias para las pruebas - (Opcional) Librerías/cliente de Firebird si la BD legacy las requiere --- # 2. Clonar el repositorio ```bash git clone factuges-sync cd factuges-sync ``` # 3. Crear y activar entorno virtual ```bash python3 -m venv venv source venv/bin/activate ``` En Windows: ```powershell venv\Scripts\activate ``` # 4. Instalar dependencias del proyecto Este proyecto se instala mediante setup.cfg + pyproject.toml. ```bash pip install --upgrade pip pip install -e . ``` Esto crea el comando factuges-sync disponible en tu entorno virtual. # 5. Configurar entorno de desarrollo El código carga automáticamente: * environment/dev.env cuando ENV=dev * Variables del contenedor en producción (ENV=production) Por tanto, **en desarrollo**: ```bash export ENV=dev ``` (En Windows: set ENV=dev) Revisa/edita: ```bash environment/dev.env ``` Ejemplo: ```ini DB_HOST=localhost DB_USER=root DB_PASS=123 SYNC_INTERVAL_MINUTES=5 ``` # 6. Ejecutar el job en desarrollo Puedes ejecutar cualquiera de los dos modos. **Opción A: usando el CLI** ```bash # Modo FACTUGES factuges-sync factuges # Modo VERIFACTU factuges-sync verifactu ``` **Opción B: llamando directamente a los módulos Python** ```bash python -m app.sync_factuges_main python -m app.sync_verifactu_main ``` # 7. Logs en desarrollo Si el proyecto escribe logs en logs/: ```bash tail -f logs/job.log ``` # 8. Producción (resumen) En producción se usa Docker y cron. Build: ```bash ./scripts/build.sh ``` Cron job: ```bash */5 * * * * docker run --rm -e ENV=production -e SYNC_MODE=factuges myimage:latest ```