Go to file
2026-01-02 12:27:15 +01:00
app Arreglo para cambio de año 2026-01-02 12:27:15 +01:00
enviroment . 2025-12-11 10:31:15 +01:00
firebird commit inicial 2025-08-28 10:51:05 +02:00
scripts Arreglo para cambio de año 2026-01-02 12:27:15 +01:00
.gitignore . 2025-12-11 10:31:15 +01:00
.prettierrc commit inicial 2025-08-28 10:51:05 +02:00
Dockerfile Subida a producción 2025-11-30 23:44:55 +01:00
Dockerfile.factuges Subida a producción 2025-11-30 12:25:10 +01:00
Dockerfile.firebird commit inicial 2025-08-28 10:51:05 +02:00
Dockerfile.verifactu Subida a producción 2025-11-30 12:25:10 +01:00
pyproject.toml . 2025-11-30 10:43:57 +01:00
README.md Subida a producción 2025-11-30 19:28:44 +01:00
setup.cfg Arreglo para cambio de año 2026-01-02 12:27:15 +01:00

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

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