| app | ||
| enviroment | ||
| firebird | ||
| scripts | ||
| .gitignore | ||
| .prettierrc | ||
| Dockerfile | ||
| Dockerfile.factuges | ||
| Dockerfile.firebird | ||
| Dockerfile.verifactu | ||
| pyproject.toml | ||
| README.md | ||
| setup.cfg | ||
Factuges Sync
Proceso ETL para sincronizar datos desde una base de datos Legacy hacia MariaDB.
Incluye dos modos de sincronización:
factugesverifactu
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
git clone <URL_DEL_REPO> factuges-sync
cd factuges-sync
3. Crear y activar entorno virtual
python3 -m venv venv
source venv/bin/activate
En Windows:
venv\Scripts\activate
4. Instalar dependencias del proyecto
Este proyecto se instala mediante setup.cfg + pyproject.toml.
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:
export ENV=dev
(En Windows: set ENV=dev)
Revisa/edita:
environment/dev.env
Ejemplo:
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
# Modo FACTUGES
factuges-sync factuges
# Modo VERIFACTU
factuges-sync verifactu
Opción B: llamando directamente a los módulos Python
python -m app.sync_factuges_main
python -m app.sync_verifactu_main
7. Logs en desarrollo
Si el proyecto escribe logs en logs/:
tail -f logs/job.log
8. Producción (resumen)
En producción se usa Docker y cron. Build:
./scripts/build.sh <company>
Cron job:
*/5 * * * * docker run --rm -e ENV=production -e SYNC_MODE=factuges myimage:latest